發(fā)生這個(gè)錯(cuò)誤是因?yàn)榻壎ǖ絉epeater的數(shù)據(jù)源類型的差異。
由于Repeater的DataSource屬性可以接受任何System.Collections.IEnumerable 對象,如用于訪問數(shù)據(jù)庫的 System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable、數(shù)組或 IListSource 對象,所以在操作DataItem的轉(zhuǎn)型時(shí),前提是要弄清楚數(shù)據(jù)源的類型。
如果是把DataTable.Defaultview作為數(shù)據(jù)源,那么DataItem轉(zhuǎn)型的類型就是DataRowView;
如果是吧DataReader作為數(shù)據(jù)源,那么DataItem轉(zhuǎn)型的類型就是System.Data.Common.DbDataRecord。
這種轉(zhuǎn)型通常發(fā)生在Repeater的DataItemBound處理事件中。
參考網(wǎng)址:
http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.repeater.datasource.aspx Repeater.DataSource屬性
http://msdn.microsoft.com/zh-cn/library/system.data.datatable.defaultview(VS.80).aspx DataTable.DefaultView屬性
http://forums.asp.net/t/1187140.aspx DataRecordInternal轉(zhuǎn)型
http://zhidao.baidu.com/question/179862651.html 百度貼吧的提問
本文首發(fā):劍鋒博客 尊重作者,請保留鏈接。