Repeater绑定dictionary数据源代码及报错解决
更新时间:2013年04月18日 17:22:36 作者:
我要评论

为大家讲解下Repeater绑定dictionary数据源以及报错处理的方法,感兴趣的朋友可以参考下哈,希望对你有所帮助
.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 对象 这样的类型是不能直接作为它的数据源的,尤其要注意对象引起的问题
复制代码 代码如下:
<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 对象 这样的类型是不能直接作为它的数据源的,尤其要注意对象引起的问题
您可能感兴趣的文章:
- Repeater事件OnItemCommand取得行内控件的方法
- Repeater控件与PagedDataSource结合实现分页功能
- Repeater控件实现编辑、更新、删除等操作示例代码
- Repeater怎么实现多行间隔显示分隔符
- Repeater中嵌套Repeater的示例介绍
- repeater做删除前弹窗询问实例
- 给Repeater控件里添加序号的5种才常见方法介绍
- asp.net Repeater 数据绑定的具体实现(图文详解)
- .net JS模拟Repeater控件的实现代码
- Repeater控件绑定的三种方式
- 利用js的Node遍历找到repeater的一个字段实例介绍
- ASP.NET笔记之 Repeater的使用
- asp.net Repeater分页实例(PageDataSource的使用)
- asp.net中使用repeater和PageDataSource搭配实现分页代码
- Repeater里switch的使用方法
- Repeater控件动态变更列(Header,Item和Foot)信息(重构cs)
- Repeater的FooterTemplate显示某列总计思路与代码
- 嵌套repeater示例分享
相关文章
js获取.aspx页面里面的服务器控件和.ascx中的服务器控件值
用js获取.ascx控件中服务器控件值时首先要得到服务器控件的ClientID再加上.ascx页面里面的服务器空间ID并用"_"连接2009-02-02详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介
本篇文章主要介绍了免费开源的.NET多类型文件解压缩组件SharpZipLib,这也是一种解压缩组件,具有一定的参考价值,有兴趣的可以了解一下。2016-12-12用javascript css实现GridView行背景色交替、鼠标划过行变色,点
前几天在博问里发现有人问关于 GridView点击行变色 的问题,突然想起很久很久以前,写过一篇文章 一个简单但常用的表格样式--鼠标划过行变色--简洁实现 ,是关于表格行颜色交替和鼠标指向时变色的,正好今天把那一篇补充和扩展一下2008-09-09
最新评论