我在列表视图的itemdataboundevent期间收到以下错误。
描述:在编译为此请求提供服务所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改源代码。
编译器错误消息: CS0030:无法将类型'System.Web.UI.WebControls.ListViewItemType'转换为'System.Data.DataRowView'
来源错误:
Line 91: CheckBox chk = (CheckBox)e.Item.FindControl("chkFocusArea");
Line 92:
Line 93: System.Data.DataRowView rowView = (System.Data.DataRowView)e.Item.ItemType;
Line 94:
Line 95: }
我的迭代事件后面的代码是
protected void lvFocusArea_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
CheckBox chk = (CheckBox)e.Item.FindControl("chkFocusArea");
System.Data.DataRowView rowView = (System.Data.DataRowView)e.Item.ItemType;
}
}
答案 0 :(得分:4)
您使用的是错误的属性。首先投放到ListViewDataItem
并使用DataItem
代替ItemType
:
<强> C#强>
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
System.Data.DataRowView rowView = (System.Data.DataRowView)dataItem.DataItem;
<强> VB.NET 强>
Dim dataItem As ListViewDataItem = CType(e.Item, ListViewDataItem)
Dim rowView As System.Data.DataRowView = CType(dataItem.DataItem, DataRowView)