Finden sie eine Kontrolle in Asp.net Listenansicht innerhalb der ausgewählten Elementvorlage

StackOverflow https://stackoverflow.com/questions/204747

  •  03-07-2019
  •  | 
  •  

Frage

Ich bin Umwandlung Funktionalität von einer asp.net Gridview zu einem Listview. Im Gridview, wenn das ausgewählte Element geändert ich einen Wert von einem Etikett in der ausgewählten Zeile greifen würde und schreiben Sie es auf ein anderes Etikett außerhalb des 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

In einem Listview gibt es keine „SelectedRow“ Konzept, sondern eine SelectedItem. Sie können jedoch nicht Findcontrol gegen das ausgewählte Element tun. Wenn ich versuche, folgendes zu tun (ich bekomme eine null-Verweisausnahme):

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

Kennt jemand den Weg, um eine Kontrolle innerhalb der ausgewählten Elementvorlage zu finden?

War es hilfreich?

Lösung

Sie rufen Findcontrol im Großen und Ganzen Listview, und nicht nur das ausgewählte Element. Dies sollte funktionieren:

Dim lblModuleTitle As Label = CType(listviewModules.Items(listviewModules.SelectedIndex).FindControl("lblModuleTitle"), Label)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top