bonsoir,
je viens de créer une GridView qui est liée à une base de donnée SqlServer, les données sont bien affichées comme vous voyez dans l'image en dessous.
Le problème c'est que je ne sais pas pourquoi a chaque fois je dois cliquer 2 fois sur Modifier Annuler et Mettre à jour ? c'est comme si il y a un conflit entre GridViewEditEventArgs et GridViewUpdateEventArgs et GridViewCancelEditEventArgs.
le code behind :
Code c# : 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 protected void Mise_a_jour(object sender, GridViewUpdateEventArgs gue) { maGridView.EditIndex = (int)gue.RowIndex; maGridView.SelectedIndex = (int)gue.RowIndex; lblaction.Text = " UPDATING ID Cat : " + maGridView.DataKeys[gue.RowIndex].Values[0].ToString(); maGridView.Dispose(); gue = null; } protected void Annuler(object sender, GridViewCancelEditEventArgs gce) { gce.Cancel = true; maGridView.EditIndex = -1; maGridView.SelectedIndex = -1; lblaction.Text = "Canceling ID Cat : " + maGridView.DataKeys[gce.RowIndex].Values[0].ToString(); } protected void Editer(object sender, GridViewEditEventArgs gee) { int edite_cat_id; int Edit = (int)gee.NewEditIndex; maGridView.SelectedIndex = Edit; maGridView.EditIndex = Edit; edite_cat_id = (int)maGridView.DataKeys[gee.NewEditIndex].Values[0]; lblaction.Text = "</br> Edit ID Cat : " + edite_cat_id; gee = null; sender = null; }
page aspx :
Code aspx : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <asp:GridView ID="maGridView" CssClass="pagine" runat="server" CellSpacing=1 HorizontalAlign="Center" AllowPaging="True" AllowSorting="True" AutoGenerateDeleteButton="True" DataKeyNames="id_cat,titre_cat" AutoGenerateEditButton="True" AutoGenerateSelectButton="True" AutoGenerateColumns="False" OnPageIndexChanging="MyDataView_Page" OnSorting="Trier" CellPadding="3" GridLines="None" onselectedindexchanged="maGridView_SelectedIndexChanged" OnRowDeleting="Supprimer" OnRowEditing="Editer" OnRowUpdating="Mise_a_jour" OnRowCancelingEdit="Annuler" OnRowCommand="Commande" BackColor="White" BorderColor="White" BorderStyle="Ridge" BorderWidth="2px" > <Columns> <asp:ButtonField ButtonType=Button CommandName="btnmodifier" HeaderText="Modifier" Text="Modifier" /> <asp:BoundField DataField="Id_cat" HeaderText="Id Cat" SortExpression="Id_cat" ReadOnly="True" /> ..... <Columns>
quand je clique la première fois sur le lien MODIFIER je reçois l'id catégorie correcte en passant par DataKeyNames c'est à dire que le déclencheur d'événement GridViewEditEventArgs s'est bien lancé pourtant la ligne n'est pas en mode Éditable, il faut que je clique encore une fois pour que la ligne devienne Éditable , même si que je l'ai bien mentionné dans mon code behind
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int Edit = (int)gee.NewEditIndex; maGridView.SelectedIndex = Edit; maGridView.EditIndex = Edit;
la même chose pour mettre-a-jour et annuler, je me demande pourquoi ?? quelqu'un pourrai m'aider s'il vous plait ?
Partager