Trova un controllo in Asp.net Listview all'interno del modello di elemento selezionato
Domanda
Sto convertendo le funzionalità da asp.net Gridview a Listview. Nel gridview quando l'elemento selezionato è cambiato, afferro un valore da un'etichetta nella riga selezionata e lo scrivo su un'etichetta diversa al di fuori del 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 una visualizzazione elenco, non è presente " SelectedRow " concetto ma un SelectedItem. Tuttavia non è possibile eseguire findcontrol con l'elemento selezionato. Quando provo a fare quanto segue (ottengo un'eccezione di riferimento null):
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
Qualcuno sa come trovare un controllo all'interno del modello di elemento selezionato?
Soluzione
Stai chiamando FindControl sull'intero ListView, anziché solo sull'elemento selezionato. Questo dovrebbe funzionare:
Dim lblModuleTitle As Label = CType(listviewModules.Items(listviewModules.SelectedIndex).FindControl("lblModuleTitle"), Label)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow