我有一个ASP.NET Web应用程序,它将多个字符串数据作为属性放入对象中。字符串数据来自Twitter的JSON提要。我的TwitterMessages集合保存在通用列表中。
我想要做的是使用asp:repeater
来遍历我的List<T>
以使用<%# Eval("MyURL") %>
显示它所拥有的对象的所有内容。 MyURL是我的TwitterMessage对象中的属性名称。
在上一个问题中,我被建议使用asp:Repeater模板在自定义HTML表格中显示我的数据。因此能够以某种方式或其他方式使用模板,这才是我真正感兴趣的。
我正在努力研究如何对Repeater执行数据绑定,以便我可以在.aspx页面中引用我的对象数据。
我知道我需要使用ItemDataBound方法来创建一个数据绑定事件,以便我可以在我的字符串数据对象中引用属性名称。
希望有足够的信息获得一些非常感谢的帮助! :)
答案 0 :(得分: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>
GetTheListOfTwitterFeedObjects
方法应该返回对象列表。每个对象都需要具有属性MyURL
。您当然可以扩展模板并绑定到twitter对象所具有的任何其他属性。
否则,您可以直接从代码中完成。只需在Page_Load中执行以下操作:
if (!IsPostBack)
{
myRepeater.DataSource = myGenericList;
myRepeater.DataBind();
}