protected void Page_Load(object sender, System.EventArgs e)
{
DataTable dt = GetDataTable("select * from AccountTypes");
repeater.DataSource = dt;
repeater.DataBind();
}
private void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType != ListItemType.Item) {
return;
}
var row = (DataRow)e.Item.DataItem;
}
它引發異常:「無法將類型爲」System.Data.DataRowView「的對象轉換爲鍵入」System.Data.DataRow「。」爲什麼中繼器返回DataRowView而不是DataRow?
DataRow是DataTable的元素,但爲什麼e.Item.DataItem成爲DataRowView?
任何人都可以找到提到這一點的MSDN文檔?
我不知道爲什麼事情正在做它做的事,也許是因爲中繼器產生'DataRowView'對象。顯然,使用'var row =((DataRowView)e.Item.DataItem).Row;'會解決這個問題。 – dasblinkenlight
不知道爲什麼你會得到DataRowView - 這是DataRow的自定義版本,但你可以將它作爲DataRow使用 - https://stackoverflow.com/questions/17089147/a-way-to-get-a-datarow -from-datarowview –