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 :

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

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 ?