在Repeater控件中显示集合

时间:2012-01-06 16:51:30

标签: asp.net exception repeater

我是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并想出如何解决这个问题?

提前谢谢!

2 个答案:

答案 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>