Réponse acceptée !
J'ai trouvé de l'information suplementaire ici pour ceux que ca interresse :
[ Lien ]Référencement de contrôles rendus à l'intérieur d'autres contrôles
Certains contrôles rendent des contrôles enfants dans la page. C'est notamment le cas des contrôles de listes de données tels que les contrôles GridView, DetailsView, FormView, DataList et Repeater, ainsi que des contrôles utilisateur et des contrôles WebPart.
Dans ces cas, les contrôles enfants ne peuvent pas avoir d'ID unique, soit parce que les contrôles enfants sont définis dans un modèle qui génère de nouvelles instances du contrôle pour chaque ligne de données (contrôles de listes de données), ou parce que le contrôle parent peut être ajouté à la page depuis une source externe (contrôles utilisateur et contrôles WebPart). Ces contrôles parents sont par conséquent des conteneurs de dénomination (naming container) (autrement dit, ils implémentent INamingContainer). Un conteneur de dénomination (naming container) veille à ce que ses contrôles enfants aient des ID uniques dans la page.
Par exemple, vous pouvez créer une propriété ItemTemplate dans le contrôle DataList et ajouter un contrôle CheckBox à l'ID duquel vous affectez la valeur checkEnabled. Lorsque le contrôle DataList est rendu, un nouveau contrôle checkEnabled est rendu pour chaque élément de données. La page rendue ne devant pas contenir plusieurs instances d'un élément nommé checkEnabled, le contrôle DataList crée une identité unique pour chacun de ses contrôles enfants.
L'identité unique des contrôles enfants d'un conteneur de dénomination (naming container) est générée en rendant deux propriétés. Pour chaque contrôle enfant :
Les propriétés ClientID et UniqueID sont basées sur la propriété ID d'origine, modifiée par suffisamment d'informations pour garantir que le résultat dans la page sera unique. La valeur de ClientID (c'est-à-dire de l'attribut id dans l'élément rendu) peut être référencée dans le script client.
Si, dans votre navigateur, vous affichez une page avec un conteneur de dénomination (naming container), vous pouvez en regarder la source pour y voir les ID uniques générés sous forme d'attributs name et id des contrôles enfants du conteneur de dénomination (naming container). Il sera néanmoins déconseillé d'utiliser une référence directe aux ID tels que vous les voyez dans le navigateur. La formule utilisée pour générer des ID uniques pour les contrôles enfants peut changer. Cherchez plutôt à obtenir la valeur de la propriété ClientID du contrôle enfant et utilisez cette valeur pour référencer le contrôle enfant. Par exemple, vous pouvez créer dynamiquement un script client sur votre page. Si votre script client référence un contrôle enfant, récupérez la propriété ClientID du contrôle enfant et intégrez-la à votre script dynamique.
Myke