Bonjour,
Savez-vous s'il existe un moyen d'empêcher l'attribution automatique d'id DANS un DataGrid (ou un GridView). Par exemple, dans une page, si vous avez quelque chose de semblable à ceci :
Ce que je souhaiterais, c'est pouvoir attribuer moi-même un id à chaque span généré (pour en faire usage dans du Javascript généré par code).
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
24
25
26
27
28
29
30
31
32 <asp : DataGrid id="dg" runat="server" OnItemDataBound="dg_ItemDataBound" ...> .... <asp:TemplateColumn HeaderText="blabla"> <HeaderStyle horizontalalign="Center" verticalalign="Middle"> </HeaderStyle> <ItemStyle horizontalalign="Center"></ItemStyle> <ItemTemplate> <asp:Label id="labCode" runat="server" text='<%# DataBinder.Eval( container, "DataItem.CODE" ) ) %>' /> </ItemTemplate> </asp:TemplateColumn> .... </asp : DataGrid> Dans la page "HTML" envoyée au navigateur, vous obtenez quelque chose comme : <table> ... <tr> ... </td><td> <span id="dg_ctl02_labCode">blabla</span> </td><td> ... </tr> <tr> ... </td><td> <span id="dg_ctl03_labCode">un autre blabla</span> </td><td> ... </tr> ... </table>
A défaut, je peux tenter de le "déduire", dans la mesure où l'attribution automatique semble respecter une règle simple : <id_du_datagrid> + '_ctl' + <numero de la ligne sur 2 positions complété à gauche par des zéros' + '_' + <id du controle "asp.net">.
Afin de vous éclairez sur le contexte, j'ai pour habitude d'intervenir au moment du "ItemDataBound" et c'est à cet instant que j'aimerais pouvoir connaitre (ou attribuer) l'id (unique) des différents "controles HTML" générés automatiquement.
Avez-vous une solution, ou à défaut une piste ?
Partager