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.
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
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.
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.
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
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?
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 :)