Trova un controllo in Asp.net Listview all'interno del modello di elemento selezionato

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

  •  03-07-2019
  •  | 
  •  

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?

È stato utile?

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
scroll top