Rechercher un contrôle dans la vue liste Asp.net à l'intérieur du modèle d'élément sélectionné

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

  •  03-07-2019
  •  | 
  •  

Question

Je suis en train de convertir les fonctionnalités d'un Gridview asp.net en une Listview. Dans la vue en grille lorsque l'élément sélectionné change, je saisis une valeur dans une étiquette de la ligne sélectionnée et l'écris dans une étiquette différente en dehors de la vue en grille.

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

Dans une liste, il n’existe pas de " SelectedRow " concept mais un élément sélectionné. Cependant, vous ne pouvez pas trouver le contrôle par rapport à l'élément sélectionné. Lorsque j'essaie de procéder comme suit (j'obtiens une exception de référence 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

Quelqu'un sait-il comment trouver un contrôle dans le modèle d'élément sélectionné?

Était-ce utile?

La solution

Vous appelez FindControl sur l’ensemble de ListView, plutôt que sur l’élément sélectionné. Cela devrait fonctionner:

Dim lblModuleTitle As Label = CType(listviewModules.Items(listviewModules.SelectedIndex).FindControl("lblModuleTitle"), Label)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top