Найти элемент управления в Asp.net Listview внутри шаблона выбранного элемента - PullRequest
1 голос
/ 15 октября 2008

Я конвертирую функциональность из Gridview asp.net в Listview. В виде сетки, когда выбранный элемент изменился, я бы взял значение из метки в выбранной строке и записал бы ее в другую метку вне сетки.

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

Кто-нибудь знает способ найти элемент управления внутри выбранного шаблона элемента?

1 Ответ

3 голосов
/ 15 октября 2008

Вы вызываете FindControl для всего ListView, а не только для выбранного элемента. Это должно работать:

Dim lblModuleTitle As Label = CType(listviewModules.Items(listviewModules.SelectedIndex).FindControl("lblModuleTitle"), Label)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...