从ListView ItemDataBound事件处理程序中的DataSource访问完整的DataRow

时间:2009-11-12 20:40:52

标签: asp.net listview datasource

在ListView ItemDataBound事件处理程序中是否可以获得对该事件的完整DataRow的访问权限?我需要对绑定的整行进行大量处理,但是在数据行中使用我实际上并没有在显示中使用的数据项值。

2 个答案:

答案 0 :(得分:4)

试试这个

DataRowView dr = (DataRowView)DataBinder.GetDataItem(e.Item);

使用

dr.Item.ItemArray你可以访问整行。

答案 1 :(得分:1)

也许尝试使用ListViewDataItem属性来访问绑定对象的基础数据对象的属性。 ListViewDataItem属性仅在控件的ItemDataBound事件期间和之后可用,并且通常对应于数据源对象中的记录。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listviewdataitem.aspx

以下是一个例子。

protected void listProducts_ItemDataBound(object sender, ListViewItemEventArgs e)
{
  if (e.Item.ItemType == ListViewItemType.DataItem)
  {
    ListViewDataItem dataItem = (ListViewDataItem)e.Item;
    string prodtype = (string)DataBinder.Eval(dataItem, "ProductType");
    // ...
  }
}