Comment obtenir la valeur de la cellule dans RowUpdating Événement GridView?
Je veux obtenir la nouvelle valeur d'une cellule dans le contrôle gridview rowUpdating événement:
roles.RoleName = gvRoles.Rows[e.RowIndex].Cells[GetColumnIndexByName(row, "RoleName")].Text;
Mais la valeur est vide.
J'ai vérifié e.NewValues qui est d'un ordre du Dictionnaire. Il contient la nouvelle valeur modifiée. Comment puis-je récupérer les nouvelles valeurs pour la mise à jour?
aspx design est:
<asp:GridView ID="gvRoles" DataKeyNames="RoleId" runat="server"
AutoGenerateColumns="False" GridLines="Vertical" CssClass="table
table-striped table-bordered" AutoGenerateEditButton="True"
OnRowCancelingEdit="gvRoles_RowCancelingEdit" OnRowUpdating="gvRoles_RowUpdating"
OnRowEditing="gvRoles_RowEditing">
<Columns>
<asp:BoundField DataField="RoleId" HeaderText="RoleId" ReadOnly="True" />
<asp:BoundField DataField="RoleName" HeaderText="RoleName" ReadOnly="false" />
<asp:BoundField DataField="Role_Description" HeaderText="Role Description" ReadOnly="false" />
<asp:TemplateField HeaderText="RoleStatus">
<EditItemTemplate>
<asp:DropDownList ID="ddlStatus" runat="server" SelectedValue='<%# Bind("Role_Status") %>' >
<asp:ListItem>True</asp:ListItem>
<asp:ListItem>False</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblRoleStatus" runat="server"
Text='<%# Bind("Role_Status") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple que j'ai trouvé est à découvert
e.NewValues
. Comme je l'ai mentionné ci-dessus, il est ordonné dictionnaire et seulement j'ai besoin de le gérer.J'ai besoin de récupérer de nouvelles valeurs à partir de ce dictionnaire, qui est je fait de cette façon.
si vous avez des champs de modèle il fonctionne aussi pour elle;
C'est la chose la plus facile que j'ai jamais découvert. avant cela, je voudrais juste l'aide de la recherche de contrôle et de moulage, puis récupération de la totalité de code de lot.
Il est également e.OldValues commandé dictionnaire. Chacun peut l'utiliser pour comparer la nouvelle valeur avec les anciens. Si les valeurs sont les mêmes, ils pourraient avertir l'utilisateur de modifier la valeur(donner une nouvelle valeur de la cellule).
Essayez Ceci:
Après une recherche longue et difficile, j'ai trouvé un excellent article qui a résolu mon problème. Jetez un oeil à la page de la charge si vous êtes à la liaison sur le post à l'époque, les valeurs d'obtenir les mises à jour avant de vous sont en mesure d'y accéder.
Suivez ce lien pour plus de détails --> https://taditdash.wordpress.com/2014/06/30/why-gridview-rowupdating-event-is-not-giving-the-updated-values/