Salut à tous
J'ai un "petit" problème avec des repeaters imbriqués (3 pour être exact)
Voilà un condensé de mon code (je vais pas vous poster la page entière ^^)
Le problème que j'ai, c'est que les "txb_dateReal" (et les "lbl_dateReal" aussi au passage) générés ont tous le même ID dans la page (contrôlé au niveau du code source), j'ai x fois le même ID
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 ... <asp:Repeater ID="rpt_activite" runat="server"> <ItemTemplate> ... <asp:Repeater ID="rpt_indicateur" runat="server"> <ItemTemplate> ... <asp:Repeater ID="rpt_action" runat="server"> <ItemTemplate> <asp:Label ID="lbl_dateReal" runat="server" /> ... <asp:TextBox ID="txb_dateReal" runat="server" /> ... </ItemTemplate> </asp:Repeater> ... </ItemTemplate> </asp:Repeater> ... </ItemTemplate> </asp:Repeater> .... Niveau Javascript c'est pas génial. Déjà niveau validation w3, c'est pas génial non plus, mais la boite dans laquelle je bosse veut "que ca fonctionne avec IE6, pour le reste on verra plus tard" mais bon, j'aime bien faire des trucs propre pour l'utilisateur final (même s'il ne le sait pas
), mais bon, c'est surtout niveau Javascript que ca m'arrange pas car tout ceci est re-rempli en fonction d'un traitement en Callback qui lui, renvoit du javascript exécuté par la page (ma fonction "succesCallback" est uniquement composée de "eval(retour);"
)
Seulement, quand j'envoie mes données, elles sont erronées... vu que j'envoie
en paramètre à mon Callback (mon paramètre est construit sur le modèle des variables d'URL) or je me retrouve avec un
Code : Sélectionner tout - Visualiser dans une fenêtre à part "'valeur=' + getElementById('" + txb_dateReal.ClientID + "').value"
dans mes paramères avec tous les txb_dateReal qui ont le même ID (à savoir 'txb_dateReal')
Code : Sélectionner tout - Visualiser dans une fenêtre à part 'valeur=' + getElementById('txb_dateReal').value
Et quand je revient de mon callback avec
je me retrouve avec tous les labels qui ont la valeur du dernier envoi... (mais quand je raffraichit tout va bien)
Code : Sélectionner tout - Visualiser dans une fenêtre à part getElementById('lbl_dateReal').innerHTML = 'nouvelle valeur';
En gros : c'est quoi l'astuce pour que les contrôles serveurs qui sont dans les repeater imbriqués aient tous des ID javascript différents ?
Partager