Master Page & GetElementsByID [Résolu]

cs_Myke 138 Messages postés mercredi 5 février 2003Date d'inscription 2 février 2010 Dernière intervention - 17 juil. 2006 à 21:40 - Dernière réponse : cs_Myke 138 Messages postés mercredi 5 février 2003Date d'inscription 2 février 2010 Dernière intervention
- 19 juil. 2006 à 00:02
Comment fait on pour integrer la function Javascript GetElementsById. Le problème est que je ne trouve pas le control dans la page une fois produite. En regardant le html produit par asp.net 2.0 les controles semblent être dans un frame different. Est-ce que quelqu'un peut m'éclairer?

[s]Myke/s
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 18 juil. 2006 à 09:21
3
Merci
Bonjour, pour garantir l'unicité des ID générés ASP.net concatene les ID du parent vers le fils c'est à dire que l'id que tu recherches doit etre contentplaceholder1_moncontrol

pour récuperer cet ID unique il faut passer par la propriété toncontrol.uniqueID :-)

<hr />Cyril - MVS - MCP

Merci jesusonline 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de jesusonline
Meilleure réponse
cs_Myke 138 Messages postés mercredi 5 février 2003Date d'inscription 2 février 2010 Dernière intervention - 19 juil. 2006 à 00:02
3
Merci
J'ai trouvé de l'information suplementaire ici pour ceux que ca interresse :
http://msdn2.microsoft.com/fr-fr/library/3hc29e2a.aspx

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 <tt>checkEnabled</tt>. Lorsque le contrôle DataList est rendu, un nouveau contrôle <tt>checkEnabled</tt> est rendu pour chaque élément de données. La page rendue ne devant pas contenir plusieurs instances d'un élément nommé <tt>checkEnabled</tt>, 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 :

<li>La propriété UniqueID du contrôle est rendue comme attribut name.

</li><li>La propriété ClientID du contrôle est rendue comme attribut id.

</li>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

Merci cs_Myke 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_Myke
cs_Myke 138 Messages postés mercredi 5 février 2003Date d'inscription 2 février 2010 Dernière intervention - 18 juil. 2006 à 15:46
0
Merci
Hey je te remercie tu m'as mis sur une bonne piste !

Ce que je cherchais a faire c'est recuperer de récuperer un control textbox qui se trouve dans un detailview qui lui se trouve dans un control placeholder (Master Page). J'ai reussi en cherchant  ctl00_MainControl_DV_InsertID. Ce que je voudrais savoir maintenant c'est si je fais bien de chercher le control de cette facon. Ce qui m'inquiète c'est le <ct100> en avant du control est ce que ce prefixe peut changer et qu'est ce que cele veut dire ? Existe-t-il une comamnde qui me permettrais de générer le  nom du control  à partir du code behind ?

Myke
Commenter la réponse de cs_Myke
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 18 juil. 2006 à 15:59
0
Merci
Sur la signification recherche sur le forum

pour connaitre l'uniqueID du controle il faut utiliser la propriété UniqueID de ton controle ...

<hr />Cyril - MVS - MCP
Commenter la réponse de jesusonline

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.