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

Messages postés
147
Date d'inscription
samedi 7 juin 2003
Statut
Membre
Dernière intervention
8 décembre 2007
- - Dernière réponse : 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
Afficher la suite 

5 réponses

Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
0
Merci
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 />

@+  
Commenter la réponse de cs_drahcir
Messages postés
147
Date d'inscription
samedi 7 juin 2003
Statut
Membre
Dernière intervention
8 décembre 2007
0
Merci
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
Commenter la réponse de Bubuss
Messages postés
147
Date d'inscription
samedi 7 juin 2003
Statut
Membre
Dernière intervention
8 décembre 2007
0
Merci
(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)
Commenter la réponse de Bubuss
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16
0
Merci
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
Commenter la réponse de jesusonline
Messages postés
147
Date d'inscription
samedi 7 juin 2003
Statut
Membre
Dernière intervention
8 décembre 2007
0
Merci
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!
Commenter la réponse de Bubuss