Bonjour tout le monde,
je suis à bout avec mon datagrid et j'ai vraiment besoin de votre aide !
Je souhaite mettre à jour les données contenues dans mon datagrid à travers l'évènement OnItemCommand
Pour celà j'ai utilisé un templateColumn dans lequel j'ai 2 imageButton pour editer et supprimer l'enregistrement (j'ai utilisé la propriété commandName).
En mode édition (après un click sur le boutton éditer) 2 autres imageButton apparaissent pour valider ou suprimmer la mise à jour mais qui ne marchent pas.
Dans mon code la suppresion marche l'édition aussi mais les bouton de validation et d'annulation de la mise à jour ne marche pas : rien ne se passe. Je suis désespéré !
Cependant les évenements associés aux buttons "_
btnUpdateCnslt" et "_btnCancelCnslt" ne marchent pas : rien ne se produit !!
Merci d'avance pour vos commentaires.
ci dessous mon datagrid :
<asp:DataGridid="_consultantDtGrid"runat="server"HorizontalAlign="Center" BorderWidth="1px"BorderColor="#5190b2"BorderStyle="Solid" AutoGenerateColumns="False"Visible="false"Width="99%" AlternatingItemStyle-BackColor="#e3e6d4" OnItemCommand="_consultantDtGrid_ItemCommand"> <Columns> <asp:BoundColumnDataField="id_consultant"Visible="false" HeaderText="#"HeaderStyle-CssClass="dataHead" ItemStyle-CssClass="centerLowercaseItem"> </asp:BoundColumn> <asp:BoundColumnDataField="c_name" HeaderText="Name"HeaderStyle-CssClass="dataHead" ItemStyle-CssClass="leftLowercaseItem"> </asp:BoundColumn> <asp:TemplateColumnHeaderStyle-CssClass="dataHead"HeaderText="Actions" ItemStyle-CssClass="centerLowercaseItem"> <ItemTemplate> <asp:ImageButtonID="_btnEditCnslt"runat="server" ToolTip="Edit this row" ImageUrl="~/images/icons/modifier.png"CssClass="dgButton" CommandName="editCnslt"/> <asp:ImageButtonID="_btnDeleteCnslt"runat="server" ToolTip="Delete this row" ImageUrl="~/images/icons/cross.gif"CssClass="dgButton" OnClientClick="return Delete()" CommandName="deleteCnslt"/> </ItemTemplate> <EditItemTemplate> <asp:ImageButtonID="_btnUpdateCnslt"runat="server" ToolTip="Valid changes" ImageUrl="~/images/icons/tick.gif"CssClass="dgButton" CommandName="updateCnslt"/> <asp:ImageButtonID="_btnCancelCnslt"runat="server" ToolTip="Cancel changes" ImageUrl="~/images/icons/cross.gif"CssClass="dgButton" Width="14px"Height="14px" CommandName="cancelCnslt"/> </EditItemTemplate> </asp:TemplateColumn></Columns></asp:DataGrid>
Et mon code C# :
if (e.CommandName == "editCnslt"){
_consultantDtGrid.EditItemIndex = e.Item.ItemIndex;
_consultantDtGrid.EditItemIndex = 0;
_error_message.InnerText = e.Item.Cells[0].Text +
" - " + e.Item.Cells[1].Text; LoadConsultantTable();
}
elseif (e.CommandName == "updateCnslt"){
// Connexion à la BD DataBaseConnection C = newDataBaseConnection(); // Exécution de la requete String query = "UPDATE FROM consultant WHERE id_consultant = " + e.Item.Cells[0].Text + " SET c_name = '" + e.Item.Cells[1].Text + "'"; C.ExecuteQuery(query);
_error_message.InnerText = e.Item.Cells[0].Text +
" - " + e.Item.Cells[1].Text; // Affiche la requete}
elseif (e.CommandName == "cancelCnslt"){
_consultantDtGrid.EditItemIndex = -1;
LoadConsultantTable();
}
elseif (e.CommandName == "deleteCnslt"){
// Connexion à la BD DataBaseConnection C = newDataBaseConnection(); // Exécution de la requete C.ExecuteQuery(
"DELETE FROM consultant WHERE id_consultant =" + e.Item.Cells[0].Text); _consultantDtGrid.EditItemIndex = -1;
LoadConsultantTable();
}