Récupérer ID d'un élément dans un control composite [C#]

Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007 - 31 juil. 2006 à 15:35
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007 - 1 août 2006 à 09:37
Lorsque je créé un control composite sur le rendu j'ai toujours une balise :

Elle entour le rendu de mon control

Côté code les éléments contenu dans mon control sont paramétrés de la sorte :
monElement.ID = "valeur ID"
Mais dans le rendu l'ID des éléments ressort sour cette forme :
ctl00_monCC + _ + valeur ID

Je penses que tout ça sert à éviter les ID en double dans le cas ou plusieur Control du même type sont sur une même page mais alors comment faire pour récupérer l'ID réel rendu côté client d'un élément vu que monElement.ID = "valeur ID" ?

Si quelqu'un peut également me dire le rôle et si il n'y a pa moyen de se débarrasser de la balise span... ça m'intéresse aussi!
Merciiii

5 réponses

cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
31 juil. 2006 à 15:40
Salut,


la valeur que tu récupères côté client comme 'ID' du conrtrôle correspond à la valeur de 'clientID' côté code. Je pense que le seul moyen de le récupérer est de formater la chaîne "ctl00_monCC + _ + valeur ID" .

Elle est toujours construite de la même façon.





<hr />

@+  
0
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007
31 juil. 2006 à 15:52
Et pour le Span tu aurai une solution/explication ?
Pour l'ID de rendu j'ai trouvé comment récupérer le nom de manière objet :
this

.ClientID +
this.ClientIDSeparator + monElement.ID
Merci encore drahcir
0
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007
31 juil. 2006 à 15:56
(Je note quand même que la propriété monElement.ClientID ne retourne pas le nom réel côté client mais la valeur de l'ID)
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
31 juil. 2006 à 20:51
Bonsoir,

j'ai pas compris ce que tu veux faire, la propriété ClientID est construite à partir des ClientID des parents séparé de ClientIDSeparator si tu veux recuperer le clientID d'un label tu n'as qu'a faire monlabel.clientID ...

la proprité ClientID correspond à la propriété ID pour tous les contrôles et la propriété UniqueID correspond à la propriété name des elements html Cyril - MVS - MCP
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007
1 août 2006 à 09:37
Bien dans mon cas la propriété ClientID ne ramène pas l'ID réel côté client du composant..
Je suis en train de fabriqué un control composite composé d'un panel et de composant imbriqué dont des boutons, dans un des bouton j'ai une action Javascript sur le onclick avec une surcharge qui est l'ID du panel...
monBouton.Attributes.Add("onclick", "javascript:maFonctionJS('" + monPanel.ClientID + "');return false;");

Comme je l'ai signalé, cette ligne ne fonctionne pas et je ne c'est pas pourquoi...
J'ai réussi à obtenir l'ID réel de l'élément avec ceci :

monBouton.Attributes.Add("onclick", "javascript:maFonctionJS('" + this.ClientID + this.ClientIDSeparator + monPanel.ID + "');return false;");

Voilà si tu as une explication sur la raison pour laquelle la propriété directe .ClientID de l'élément ne retourne pas l'ID réel côté client qui lui, est composé du ClientID du Control Composite, d'un séparateur, et de l'ID du panel... ben ça m'intéresse!

Moi je penses que c'est que temps que le control n'a pas été généré le ClientID de l'élément n'est pas final et que, comme je suis dans le code j'imagine qu'il faut lui préciser à la main son futur nom... mais je peux me tromper je suis débutant!
0
Rejoignez-nous