Problème d'ID (changement automatique)

niki1291 Messages postés 6 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 14 avril 2008 - 16 janv. 2008 à 16:41
 Utilisateur anonyme - 16 janv. 2008 à 19:37
Bonjour à toutes et à tous,

Voilà mon problème, j'ai un bout de code (le suivant) :

  ----

   
     
     
      ,
    ,
 

Lors de l'affichage du code dans le navigateur, l'ID du "DropDownList" est renommée en "ctl00_maincontent_DdlActionToDo" du coup, le javascript indique une erreur (objet non trouvé).

J'ai essayé de remplacer "getElementById('DdlActionToDo')" par "getElementById('<%= DdlActionToDo.ID.ToString()%>')" mais sans succès. De plus, je suis obligé d'utiliser un champ "DropDownList" car je dois y accéder depuis le serveur (je ne peux donc pas le remplacer par un select).

Solution de remplacement temporaire trouvée, remplacr "getElementById('DdlActionToDo')" par "getElementById('ctl00_maincontent_DdlActionToDo')". Mais ne sachant pas comment cette nouvelle ID est nommée, je préférerais une autre méthode (de peur que le nom change (à première vue, ce n'est pas le cas)).

Quelqu'un sait-il comment ces noms d'ID sont créés ?
Quelqu'un connaît-il une autre méthode ?

Merci d'avance.

Amicalement,
Niki

1 réponse

Hello,

Je pense pas qu'il y ai moyen d'enlever la fonction automatique qui définit un texte devant tes ID.
Il s'agit de l'ID d'un contrôle pour lequel on a pas explicitement renseigné d'ID, dans ce cas si ton ID est null ou vide, ASP.net va automatiquement générer un ID. Mais même si tu as défini un ID il te générera automatiquement cet ID avant le tiens.

Néamoin, tu peux toujours changer le ctl00 en ce que tu veux via la fontion this.ID ="tontexte"; a mettre dans le code-behind dans le init de ta page par exemple.

Aussi non, le plus simple est de générer ton code JS en StringBuilder comme ceci par exemple :
0
Rejoignez-nous