Je n'arrive pas à passer en mode édition quand j'utilise des TemplateField.
Le lien 'Edit' change bien pour 'Mettre à jour' et 'Annuler' mais mon champ ne se change pas en InputBox. Si je clique sur 'Annuler', rien ne se passe; si je clique sur 'Mettre à jour', il vide tous les champs de la ligne.

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
 
<asp:GridView ID="GridView1" Runat="server" DataSourceID="AccessDataSource1"
DataKeyNames="ID_no"
OnRowEditing="GridView1_RowEditing" >
 
<Columns>
<asp:CommandField ShowEditButton="True" />
 
<asp:TemplateField HeaderText="ID_no" Visible="False">
<ItemTemplate>
<asp:Label ID="ID_noLabel" Runat="Server"><%# Eval("ID_no")%></asp:Label>
</ItemTemplate>
 
<asp:TemplateField HeaderText="Naissance" SortExpression="DateDeNaissance" >
<ItemTemplate>
<asp:Label ID="DateDeNaissanceLabel" Runat="Server" Text='<%# Eval("DateDeNaissance", "{0:dd-MM-yyyy}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
 
</Columns>
</asp:GridView>
L'erreur est peut-être dans mon code-behind:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        GridView1.Rows[e.NewEditIndex].FindControl("DateDeNaissanceLabel");
    }
Je pioche là-dessus depuis des jours. Une solution vous vaudra ma reconnaissance éternelle.