ID d'un control

Signaler
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007
-
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007
-
Bonjour,

Je me demande pourquoi quand je regarde le code source de ma page depuis mon navigateur, l'ID de mes control ne correspond pas à celui que j'ai indiqué dans mes pages aspx. Du coup c'est galere pour récupérer un element depuis du javascript avec getElementById. Du coup je suis obligé d'aller regarder dans le code source du navigateur pour voir l'ID de mon control. C'est pas tres catholique comme méthode.

Merci

7 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,

c'est normal, car en faisant des userControl tu peux rajouter plusieurs fois le meme control, et donc ils auront le meme id, ce qui est interdit en asp.net

pour connaitre l'id de chaque controle il faut faire un toncontrol.clientID


<HR>
Cyril - MVS - MCP
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007

ah ben ça m'arrange pas du tout ça. Depuis mon code javascript, je veux connaitre l'id d'une textbox qui se trouve le updatetemplare d'un gridview. En fait j'execute le code que tu avais mis en ligne pour récupérer la date d'un calendar en javascript. Seulement au lieu de mettre la date dans une simple textbox, je voudrais la mettre dans une texte box se situant dans un gridview quand il est en mode modification.

Le probleme vient quand j'ecris cette ligne :

Script +" window.opener.document.getElementById("").value '" + Calendar1.SelectedDate.ToShortDateString() +
"';\n";

je ne sais pas quoi mettre en parametre de la fonction getElementById pour pouvoir avoir l'id du textbox qui se trouve dans ma gridview qui se trouve sur l'autre page.

Si ca avait été sur la meme page, j'aurais pu utiliser la fotion findcontrol.

merci de tes réponses
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Dans ton cas il va falloir écrire le js dans l'evenement Edit de ton gridview, tu retrouveras dans e.item la ligne en cours d'edition, tu pourras alors faire un e.item.row.findControl("tontextbox").clientID


<HR>
Cyril - MVS - MCP
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007

Je ne trouve pas item dans pour l'evenement

protected
void GridView2_RowEditing(object sender, GridViewEditEventArgs e)

j'ai essayer via


string
IDTextBox = ((TextBox)this.GridView2.Rows[e.NewEditIndex].FindControl("txtbox")).ClientID;

mais il trouve pas le controle.

Et quand tu dis de mettre le js dans l'evenement edit, tu parles duquel? C'est bien celui qui appelle la fonction
ShowCalendarPopup(); ?
ou celui qui se trouve dans le code de calendar.aspx?

Merci
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
pour le js c'est cette ligne la dont je parlais :
Script +" window.opener.document.getElementById("").value '" + Calendar1.SelectedDate.ToShortDateString() +
"';\n";


met un point d'arret sur le GridView2_RowEditing et regarde ce que tu as dans e, je suis sur que tu dois avoir la textbox quelque part :)

>> http://www.aspfr.com/tutoriaux/DEBUG-ASP-NET-AVEC-VISUAL-STUDIO_384.aspx


<HR>
Cyril - MVS - MCP
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007

non je confirme, y a rien :(
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007

quelqu'un a une idée?

Merci