Czy jest to w ogóle możliwe w ramach obsługi zdarzeń ListView ItemDataBound, aby uzyskać dostęp do pełnej wersji DataRow dla tego wydarzenia? Muszę wykonać dużo przetwarzania dla całego wiersza podczas wiązania, ale używając wartości elementów danych w bazie danych, których właściwie nie używam na samym wyświetlaczu.Uzyskiwanie dostępu do pełnej wersji DataRow z DataSource w module obsługi zdarzeń ListView ItemDataBound
Odpowiedz
Spróbuj
DataRowView dr = (DataRowView)DataBinder.GetDataItem(e.Item);
użyciu dr.Item.ItemArray można uzyskać dostęp do całego wiersza.
Być może spróbuj użyć właściwości ListViewDataItem
, aby uzyskać dostęp do właściwości podstawowego obiektu danych, do którego obiekt jest związany. Właściwość ListViewDataItem jest dostępna tylko podczas zdarzeń ItemDataBound elementu sterującego i po nich i zwykle odpowiada rekordowi w obiekcie źródła danych.
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listviewdataitem.aspx
Poniżej znajduje się przykład.
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");
// ...
}
}
Zamknij, ale z tego co wiem, daje mi dostęp tylko do jednego elementu danych - elementu, który jest związany w tym konkretnym momencie, a nie do całego wiersza danych, który jest związany w tej iteracji listView ItemTemplate. – Moo
Przepraszam, masz na myśli tylko jedno pole dla danego wiersza, czy potrzebujesz odniesienia do danych z innego wiersza? – Jakkwylde
Myślę, że chodziło Ci o Eval (dataItem.DataItem, "ProductType"); To działa – clamchoda
- 1. Uzyskiwanie tytułu UIButton w module obsługi zdarzeń
- 2. Uzyskaj wartość danych z ListView ItemDataBound
- 3. Uzyskaj odwołanie do komponentu React w module obsługi zdarzeń
- 4. dostępu kolumny w przypadku ItemDataBound gdy źródło danych jest LINQ
- 5. dostęp do obsługi zdarzeń
- 6. uzyskiwanie pełnej nazwy zespołu
- 7. Opóźnianie obsługi zdarzeń do momentu wystrzelenia zdarzeń
- 8. Uzyskiwanie dostępu do komponentów .NET z Powershell
- 9. Uzyskiwanie dostępu do "tego" w Clojurescript
- 10. Przekazywanie argumentów do obsługi zdarzeń
- 11. Uzyskiwanie pełnej ścieżki do usługi systemu Windows
- 12. Przekazywanie danych zdarzeń do wbudowanych programów obsługi zdarzeń
- 13. Uzyskiwanie wybranego elementu z ListView
- 14. Uzyskiwanie dostępu do modelu z szablonu
- 15. Czy * .datasource należy zignorować w kontroli wersji?
- 16. Uzyskiwanie pełnej kopii bazy danych WHOIS
- 17. Uzyskiwanie dostępu do wydarzeń z kalendarza "Wydarzenia znalezione w poczcie"
- 18. IE8 onclick obsługi zdarzeń
- 19. dla obsługi zdarzeń
- 20. Uzyskiwanie dostępu do FacesContext z usługi WWW
- 21. Uzyskiwanie dostępu do Web.config z innego projektu
- 22. Uzyskiwanie dostępu do obiektów z innego procesu
- 23. Uzyskiwanie dostępu do pól z obiektu Proxied
- 24. Dziedziczenie obsługi zdarzeń w C#
- 25. Uzyskiwanie dostępu do metadanych z mp3 Python
- 26. Uzyskiwanie dostępu do ResourceDictionary z WPF UserControl
- 27. Uzyskiwanie dostępu do indeksu z drzewa wyrażeń
- 28. Uzyskiwanie dostępu do UITabBarController z UIVIewController
- 29. Uzyskiwanie dostępu do prywatnych metod z funkcji modułu w Ruby
- 30. Uzyskiwanie dostępu do ScrollViewer ListBox z C#
Musiały to zmienić, niezależnie od używanej wersji .NET. Wygląda na to, że nie ma już elementu .Item.ItemArray. Możesz dostać się do kolumn przez dr.Row ["ColumnName"]. –