Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的ASP.NET FormView总是呈现EmptyTemplate?_C#_Asp.net_Data Binding_Objectdatasource_Formview - Fatal编程技术网

C# 为什么我的ASP.NET FormView总是呈现EmptyTemplate?

C# 为什么我的ASP.NET FormView总是呈现EmptyTemplate?,c#,asp.net,data-binding,objectdatasource,formview,C#,Asp.net,Data Binding,Objectdatasource,Formview,我已将FormView绑定到usercontrol中的ObjectDataSource,并用以下代码初始化: <asp:ObjectDataSource ID="odsCampaign" runat="server" DataObjectTypeName="code.model.Campaign" TypeName="code.model.Campaign" SelectMethod="LoadCampaign"> <SelectParamete

我已将FormView绑定到usercontrol中的ObjectDataSource,并用以下代码初始化:

<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;
    }
}
//活动调用集合继承自IEnumerable
公共课活动:活动集合
{
//要展示的财产
公共字符串主题{get;set;}
//建造师
公众运动(国际编码)
:base()
{
//根据传递给构造函数的主键初始化对象
初始化密码(代码);
}
私有无效初始化密码(内部代码)
{
//初始化代码
}
//ObjectDataSource的加载方法
公共静态活动LoadCampaign(内部代码)
{
//返回已初始化活动对象的新实例。
活动oCampaign=新活动(代码);
//抛出新异常(oCampaign.Subject);
返回本地标志;
}
}
但是,如果启用异常,则会将适当的主题文本作为异常消息传递。但是我的FormView总是呈现空模板。我真的看不出这里有什么错误。有人能帮我解决这个问题吗


提前谢谢

是因为它需要的是活动列表而不是单个活动吗?

在这种情况下,活动被定义为活动调用列表。活动对象本身描述了这些调用的某种元信息。在我的FormView中,我想为单个活动实例显示这些信息。这就是为什么DataObjectTypeName是code.model.Campaign。但是这个想法并不坏——也许FormView无法渲染直接或间接继承自IEnumerable的对象?我来查一下!:-)好的,从继承层次结构中删除IEnumerable修复了问题。经过一些编码后,我更改了Campaign和CampaignCallCollection之间的关系,这样Campaign就不会继承自CampaignCallCollection,而是保存了此对象实例的引用。非常感谢:-)非常感谢!好消息很高兴你解决了:D