Доступ к полной DataRow из DataSource в обработчике события ListView ItemDataBound - PullRequest
6 голосов
/ 12 ноября 2009

Возможно ли вообще в обработчике события ListView ItemDataBound получить доступ к полной DataRow для этого события? Мне нужно выполнить большую обработку всей строки при связывании, но с использованием значений элементов данных в базе данных, которые я фактически не использую на самом дисплее.

Ответы [ 2 ]

4 голосов
/ 29 декабря 2009

Попробуйте это

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

с помощью dr.Item.ItemArray вы можете получить доступ ко всей строке.

1 голос
/ 13 ноября 2009

Возможно, попытайтесь использовать свойство 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");
    // ...
  }
}
...