Repeater的ItemDataBound 事件中e.Item.DataItem 转换后的格式问题

今天想自己回顾一下不用三层绑定Repeater,在ItemDataBound事件中获取当前行的数据e.Item.DataItem时还想像以前用三层时间直接返回一个实体,如以前用List做数据源的时间代码是这样的ZM.Zhao.Model.ChannelInfo info = (ZM.Zhao.Model.ChannelInfo)e.Item.DataItem,能通过属性调用这个实体的数据。但现在用dataset一直提示转换失败什么的,最终找到原因如下:原来不同类型的数据源绑定的Rpeater最终这里获取的类型并不一直相同------

1、使用DataSet和DataTable绑定数据源时

DataRowView view = (DataRowView)e.Item.DataItem;

2、DataReader绑定数据源时

System.Data.Common.DbDataRecord view = (System.Data.Common.DbDataRecord)e.Item.DataItem;

3、使用泛型做数据源时,则是泛型对应的类型。

例如 IList<DocumentInfo> 为数据源
DocumentInfo docInfo = (DocumentInfo)e.Item.DataItem;

 

只有用List做数据源的时间才能像以前那样操作。

posted @ 2013-06-18 20:35  zzu202  阅读(1223)  评论(0)    收藏  举报