欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-03 20:39:28
.aspx页面代码 复制代码 代码如下:
.aspx页面代码
复制代码 代码如下:

<asp:repeater id="repeater1" runat="server">
<itemtemplate>
<%# ((keyvaluepair<int, list<user>>)container.dataitem).key %> <br />
<asp:repeater id="repeater2" runat="server" datasource='<%# ((keyvaluepair<int, list<user>>)container.dataitem).value %>'>
<itemtemplate>
<%# (container.dataitem as user).id %>
<%# (container.dataitem as user).name %>
</itemtemplate>
</asp:repeater>
<hr />
</itemtemplate>
</asp:repeater>

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

public partial class temp : system.web.ui.page
{
dictionary<int, list<user>> dict = new dictionary<int, list<user>>();
protected void page_load(object sender, eventargs e)
{
dict.add(1, new list<user>
{
new user{id = 1, name = "aa"}
,new user{id = 2, name = "bb"}
});
dict.add(2, new list<user>
{
new user{id = 3, name = "cc"}
,new user{id = 4, name = "dd"}
});
repeater1.datasource = dict;
repeater1.databind();
}
}
public class user
{
public int id{get;set;}
public string name{get;set;}
}

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