zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

Repeater绑定dictionary数据源代码及报错解决

数据 报错 解决 绑定 源代码 Dictionary Repeater
2023-06-13 09:14:50 时间
.aspx页面代码
复制代码代码如下:

<asp:RepeaterID="Repeater1"runat="server">
<ItemTemplate>
<%#((KeyValuePair<int,List<User>>)Container.DataItem).Key%><br/>
<asp:RepeaterID="Repeater2"runat="server"DataSource="<%#((KeyValuePair<int,List<User>>)Container.DataItem).Value%>">
<ItemTemplate>
<%#(Container.DataItemasUser).Id%>
<%#(Container.DataItemasUser).Name%>
</ItemTemplate>
</asp:Repeater>
<hr/>
</ItemTemplate>
</asp:Repeater>

.aspx.cs后置代码
复制代码代码如下:

publicpartialclassTemp:System.Web.UI.Page
{
Dictionary<int,List<User>>dict=newDictionary<int,List<User>>();
protectedvoidPage_Load(objectsender,EventArgse)
{
dict.Add(1,newList<User>
{
newUser{Id=1,Name="aa"}
,newUser{Id=2,Name="bb"}
});
dict.Add(2,newList<User>
{
newUser{Id=3,Name="cc"}
,newUser{Id=4,Name="dd"}
});
Repeater1.DataSource=dict;
Repeater1.DataBind();
}
}
publicclassUser
{
publicintId{get;set;}
publicstringName{get;set;}
}

如果报以下错误:
repeater使用的是无效数据源。有效数据源必须实现IListSource或IEnumerable?
是因为数据源类型问题,比如DataTableDataSetXmlArrry集合
像Stringint对象这样的类型是不能直接作为它的数据源的,尤其要注意对象引起的问题