Re-Bonjour tout le monde,
je suis encore avec mon datagrid, et maintenant, j'essaie de pouvoir modifier une ligne de mon datagrid.
j'ai un bouton modifier a la derniere colonne de mon datagrid (l'image est un crayon). et lorsque je clique dessus, j'aimerais que la ligne sélectionnée affiche des dropdownlist et des texbox pour que mon utilisateur puisse modifier la ligne. Mais malheureusement, j'ai plein de problème.
Voici mon code lorsque l'on clique sur le petit crayon:
private void datagrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { switch(e.CommandName) { case "Edit" : datagrid.EditItemIndex = e.Item.ItemIndex ; break; } }
alors lorsque que je clique, il ne se passe rien du tout, c'est seulement au deuxième clique que mon erreur apparaît. Pourquoi est ce que j'ai besoin de cliquer deux fois?
et en PLUS, il ne va jamais dans ma fonction d'au dessus, c'est pourtant un itemCommand lorsque je clique dessus non?
et deuxièment, lorsqu'il me donne mon erreur, il affiche ceci:
Échec du chargement de viewstate. L'arborescence du contrôle sur lequel viewstate est chargé doit correspondre à l'arborescence du contrôle qui a été utilisé pour enregistrer viewstate lors de la demande précédente. Par exemple, lors de l'ajout dynamique de contrôle, les contrôles ajoutés lors d'une publication doivent correspondre au type et à la position des contrôles ajoutés lors de la demande initiale
voici le code de mon datagrid
<asp:datagrid id="dgAllocation" runat="server" Width="358px" Height="64px" AllowPaging="True" AutoGenerateColumns="False" PageSize="3" BorderColor="LightSteelBlue"> <EditItemStyle BackColor="LightBlue"></EditItemStyle> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle> <HeaderStyle CssClass="HEADERSTYLE"></HeaderStyle> <Columns> <asp:TemplateColumn HeaderText="Type"> <ItemTemplate> <asp:Label id="lblType" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Type") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownList id="cboDomaine" runat="server" Width="172px"> <asp:ListItem Value="RH">1</asp:ListItem> <asp:ListItem Value="Paie">2</asp:ListItem> <asp:ListItem Value="RH-Paie">3</asp:ListItem> </asp:DropDownList> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="Montant"> <ItemTemplate> <asp:Label id="lblMontant" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Montant") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> </EditItemTemplate> </asp:TemplateColumn> <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="<img border=0 src="images/icon-floppy.gif">" CancelText="<img border=0 src="images/icon-pencil-x.gif">" EditText="<img border=0 src="images/Modification.gif">"></asp:EditCommandColumn> <asp:ButtonColumn Text="<img border=0 src="images/icon-delete.gif">" CommandName="Delete"></asp:ButtonColumn> </Columns> <PagerStyle NextPageText="suivant >" PrevPageText="< précédent" CssClass="PAGERSTYLE"></PagerStyle> </asp:datagrid>
Avez-vous une idée de ce qui ne fonctionne pas avec mon code?
merci de m'aider