Finden sie eine Kontrolle in Asp.net Listenansicht innerhalb der ausgewählten Elementvorlage
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?
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