[C#2]Repeater imbriqués, les ID ne sont pas uniques
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 ^^)
Code:
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>
... |
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 :marteau:. 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 :P), 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);" :aie:)
Seulement, quand j'envoie mes données, elles sont erronées... vu que j'envoie
Code:
"'valeur=' + getElementById('" + txb_dateReal.ClientID + "').value"
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:
'valeur=' + getElementById('txb_dateReal').value
dans mes paramères avec tous les txb_dateReal qui ont le même ID (à savoir 'txb_dateReal')
Et quand je revient de mon callback avec
Code:
getElementById('lbl_dateReal').innerHTML = 'nouvelle valeur';
je me retrouve avec tous les labels qui ont la valeur du dernier envoi... (mais quand je raffraichit tout va bien)
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 ?