發(fā)生這個(gè)錯誤是因為綁定到Repeater的數據源類(lèi)型的差異。
由于Repeater的DataSource屬性可以接受任何System.Collections.IEnumerable 對象,如用于訪(fǎng)問(wèn)數據庫的 System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable、數組或 IListSource 對象,所以在操作DataItem的轉型時(shí),前提是要弄清楚數據源的類(lèi)型。
如果是把DataTable.Defaultview作為數據源,那么DataItem轉型的類(lèi)型就是DataRowView;
如果是吧DataReader作為數據源,那么DataItem轉型的類(lèi)型就是System.Data.Common.DbDataRecord。
這種轉型通常發(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轉型
http://zhidao.baidu.com/question/179862651.html 百度貼吧的提問(wèn)
本文首發(fā):劍鋒博客 尊重作者,請保留鏈接。

