使用带有List <T>对象数据的ASP.NET Repeater Control

Ale*_*lex 1 c# asp.net json repeater

我有一个ASP.NET Web应用程序,它将多个字符串数据作为属性放入对象中.字符串数据来自Twitter的JSON提要.我的TwitterMessages集合保存在通用列表中.

我想要做的是使用a asp:repeater迭代我List<T>的显示它所拥有的对象的所有内容,使用<%# Eval("MyURL") %>.MyURL是我的TwitterMessage对象中的属性的名称.

在之前的一个问题中,我被建议使用asp:Repeater模板在自定义HTML表格中显示我的数据.因此能够以某种方式或其他方式使用模板,这才是我真正感兴趣的.

我正在努力的方法是研究如何对Repeater执行数据绑定,以便我可以在.aspx页面中引用我的对象数据.

我知道我需要使用ItemDataBound方法来创建一个数据绑定事件,以便我可以在我的字符串数据对象中引用属性名称.

希望足够的信息得到一些非常感谢的帮助!:)

wom*_*omp 6

将数据绑定到转发器非常简单.根据列表对象所在的位置,您可以使用标记或代码隐藏来绑定转发器.

如果你想在标记中执行它,你应该在List周围创建一个ObjectDataSource包装器.像这样的东西:

<asp:Repeater ID="rpt" runat="server" DataSourceID="twitterFeedSource" >
<ItemTemplate>
<tr><td><%# Eval("MyURL") %></td></tr>
</ItemTemplate>
</asp:Repeater>

<asp:ObjectDataSource ID="twitterFeedSource" runat="server"
  SelectMethod="GetTheListOfTwitterFeedObjects"
  TypeName="myTwitterFeedClass"
>
</asp:ObjectDataSource>
Run Code Online (Sandbox Code Playgroud)

GetTheListOfTwitterFeedObjects方法应返回对象列表.每个对象都需要拥有该属性MyURL.您当然可以扩展模板并绑定到twitter对象具有的任何其他属性.

否则,您可以直接从代码中完成.只需在Page_Load中执行以下操作:

if (!IsPostBack)
{
    myRepeater.DataSource = myGenericList;
    myRepeater.DataBind();
}
Run Code Online (Sandbox Code Playgroud)