【问题标题】:Why does my ASP.NET FormView always render EmptyTemplate?为什么我的 ASP.NET FormView 总是呈现 EmptyTemplate?
【发布时间】:2012-03-19 09:07:19
【问题描述】:

我有一个绑定到放置在用户控件内的 ObjectDataSource 的 FormView,使用以下代码进行初始化:

<asp:ObjectDataSource ID="odsCampaign" runat="server"
    DataObjectTypeName="code.model.Campaign"
    TypeName="code.model.Campaign"
    SelectMethod="LoadCampaign">
    <SelectParameters>
        <asp:QueryStringParameter Name="code" QueryStringField="id" Type="Int32" />
    </SelectParameters>
</asp:ObjectDataSource>

<%-- ... --%>

<asp:FormView ID="fvCampaign" runat="server"
    DataSourceID="odsCampaign">
    <EmptyDataTemplate>
        <span>No campaign loaded.</span>
    </EmptyDataTemplate>
    <ItemTemplate>
        <span>Campaign</span>
        <span><%# Eval("Subject") %></span>

        <%-- ... --%>
    </ItemTemplate>
</asp:FormView>

我的代码如下所示:

// CampaignCallCollection inherits from IEnumerable<CampaignCall>
public class Campaign : CampaignCallCollection
{
    // Some property to show
    public string Subject { get; set; }

    // Constructor
    public Campaign(int code)
        : base()
    {
        // Initialize the object based on the primary key passed to the constructor
        InitializeCampaign(code);
    }

    private void InitializeCampaign(int code)
    {
        // Initialization Code
    }

    // Loading method for ObjectDataSource
    public static Campaign LoadCampaign(int code)
    {
        // Return new instance of an initialized campaign object.
        Campaign oCampaign = new Campaign(code);
        //throw new Exception(oCampaign.Subject);
        return oCampaign;
    }
}

但是,如果我启用异常,则正确的主题文本将作为异常消息传递。但我的 FormView 总是呈现 EmptyTemplate。我真的没有在这里看到错误。谁能帮我解决这个问题?

提前致谢!

【问题讨论】:

    标签: c# asp.net data-binding objectdatasource formview


    【解决方案1】:

    是因为它需要一个广告系列列表而不是单个广告系列吗?

    【讨论】:

    • 在这种情况下,一个活动被定义为一个活动呼叫列表。 Campaign-Object 本身为这些调用描述了某种元信息。在我的 FormView 中,我想显示单个活动实例的这些信息。这就是 DataObjectTypeName 是 code.model.Campaign 的原因。但是这个想法还不错——也许 FormView 不能渲染直接或间接继承自 IEnumerable 的对象?我会检查这个! :-)
    • 好的,从继承层次结构中删除 IEnumerable 解决了这个问题。经过一些编码后,我更改了 Campaign 和 CampaignCallCollection 之间的关系,因此 Campaign 不会从 CampaignCallCollection 继承,而是持有该对象实例的引用。非常感谢 :-) 非常感谢!
    • 好消息很高兴你把它整理出来:D
    猜你喜欢
    • 2011-11-06
    • 2021-12-26
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多