Найдите элемент управления в Asp.net Listview Внутри шаблона выбранного элемента
Вопрос
Я конвертирую функциональность из asp.net Gridview в Listview.В gridview, когда выбранный элемент менялся, я получал значение из метки в выбранной строке и записывал его в другую метку за пределами gridview.
Protected Sub grdModules_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles grdModules.SelectedIndexChanged
Dim lblModuleTitle As Label = grdModules.SelectedRow.FindControl("lblModuleTitle")
lblCurrentModule.Text = lblModuleTitle.Text
End Sub
В Listview существует не концепция "selectedRow", а SelectedItem .Однако вы не можете выполнить findcontrol для выбранного элемента.Когда я пытаюсь сделать следующее (я получаю исключение с нулевой ссылкой):
Protected Sub listviewModules_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles listviewModules.SelectedIndexChanged
Dim lblModuleTitle As Label = CType(listviewModules.FindControl("lblModuleTitle"), Label)
lblCurrentModule.Text = lblModuleTitle.Text
End Sub
Кто-нибудь знает способ найти элемент управления внутри шаблона выбранного элемента?
Решение
Вы вызываете FindControl для всего ListView, а не только для выбранного элемента.Это должно сработать:
Dim lblModuleTitle As Label = CType(listviewModules.Items(listviewModules.SelectedIndex).FindControl("lblModuleTitle"), Label)
Не связан с StackOverflow