今天想自己回顾一下不用三层绑定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做数据源的时间才能像以前那样操作。