listview中的itemdatabound事件有什么问题?

时间:2010-07-13 10:34:23

标签: c# asp.net

我在列表视图的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; 

    }
}

1 个答案:

答案 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)