我是Asp.Net的初学者,我试图在reapet控件上显示“gc”。
以下是代码隐藏:
public partial class _Default : System.Web.UI.Page
{
List<GlassesCollection> gc= BL.Example.GetCategory() ;
protected void Page_Load(object sender, EventArgs e)
{
rpt1.DataSource = gc;
rpt1.DataBind();
}
protected void rpt1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
}
我使用以下ASP代码:
<asp:Repeater ID="rpt1" runat="server" onitemdatabound="rpt1_ItemDataBound">
<ItemTemplate>
<%# Eval("gc") %>
</ItemTemplate>
</asp:Repeater>
但是在运行时我得到了这个例外: 异常详细信息:System.Web.HttpException:DataBinding:'ISeeOptic.DataType.GlassesCollection'不包含名为'gc'的属性。
为什么我得到这个Excption并想出如何解决这个问题?
提前谢谢!
答案 0 :(得分:0)
尝试eval特定属性而不是对象
<asp:Repeater ID="rpt1" runat="server" onitemdatabound="rpt1_ItemDataBound">
<ItemTemplate>
<%# Eval("gcProperty") %>
</ItemTemplate>
</asp:Repeater>
SO Question提供了有关将转发器绑定到通用列表的更多详细信息。
答案 1 :(得分:0)
您通常可以利用DataBinder类,其功能和灵活性与此处列出的代码相同...
<asp:Repeater ID="rpt1" runat="server" onitemdatabound="rpt1_ItemDataBound">
<ItemTemplate>
<%# DataBinder.Eval("gcProperty") %>
</ItemTemplate>
</asp:Repeater>