最近几天一直在学习Linq,Repeater的数据源从DataTable/DataSet换成了IQueryable<T>,结果Repeater_ItemDataBound事件中的代码无法通过,错误:无法将类型为“T”的对象强制转换为类型“System.Data.DataRowView”。在我的程序中 T 为“SolutionSearchResult”。
报错语句为:DataRowView dv = ((DataRowView)e.Item.DataItem);
解决方法如下 :
原来的代码:
修改之后的代码:
对于其他数据源控件,如:GridView、DataList等,以上解决方法仍然有效。
对于数据源为IList<T> 类型的,以上解决方法仍然有效。