C# 为什么我的ASP.NET FormView总是呈现EmptyTemplate?
我已将FormView绑定到usercontrol中的ObjectDataSource,并用以下代码初始化: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
<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