Pourquoi une étiquette est-elle uniquement accessible via l'événement OnItemDataBound de répéteurs?

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

  •  05-07-2019
  •  | 
  •  

Question

Si j'ai une étiquette dans un modèle d'élément d'un répéteur, elle est nulle si j'essaie d'y accéder via repeater.Items [0] .FindControl ("étiquette"). En fait, Items vaut 0 même si j'ai 1 itemtemplate. Ce n'est que lorsque j'utilise l'événement OnItemDataBound que je peux trouver le contrôle via l'argument e. Je suis curieux de savoir pourquoi je dois utiliser l'événement OnItemDataBound au lieu d'utiliser simplement repeater.Items [0] .FindControl ("label"). Quelqu'un peut-il expliquer cela?

Était-ce utile?

La solution

Lorsque vous créez un modèle pour un répéteur, vous indiquez uniquement au répéteur ce que vous souhaitez insérer au moment de l'exécution. Ces contrôles ne sont pas initialisés de la même manière qu'ils le seraient s'ils ne faisaient pas partie d'un modèle.

Les contrôles dans le modèle sont créés lorsque le répéteur est lié aux données. De ce fait, vous ne pourrez pas y accéder jusqu'à ce point de son cycle de vie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top