我的aspx页面中有这个GridView。每当用户更改此网格中的任何数据时,我都需要启用与该行对应的“保存”按钮。
<asp:GridView ID="FoodBagItemsGridView" ShowFooter="true" AutoGenerateColumns="false"
DataKeyNames="FoodBagItemId" runat="server" OnDataBound="FoodBagItemsGridView_DataBound"
OnRowCommand="FoodBagItemsGridView_RowCommand">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button runat="server" ID="Save" Text="Save" CommandName="SaveFoodBagItem" CommandArgument='<%# DataBinder.Eval(Container,"RowIndex") %>' Enabled="false" />
<asp:Button runat="server" ID="Delete" Text="Delete" CommandName="DeleteFoodBagItem" CommandArgument='<%# DataBinder.Eval(Container,"RowIndex") %>' OnClientClick="return confirm('Are you sure ?');" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="FoodBagItemId" HeaderText="Id" />
<asp:TemplateField HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtItemQuantity" Text='<%# Bind("ItemQuantity") %>' OnTextChanged="EnableSaving"></asp:TextBox>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox runat="server" ID="txtItemQuantityInput"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtItemName" Text='<%# Bind("ItemName") %>' OnTextChanged="EnableSaving" ></asp:TextBox>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox runat="server" ID="txtItemNameInput"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Include In Food Bag">
<ItemTemplate>
<asp:CheckBox runat="server" ID="ChkBxIncludeInFoodBag" Checked='<%# Bind("IncludeInFoodBag") %>' OnCheckedChanged="EnableSaving" ></asp:CheckBox>
</ItemTemplate>
<FooterTemplate>
<asp:CheckBox runat="server" ID="ChkBxIncludeInFoodBag"></asp:CheckBox>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我想为每个数据列添加一个On Change事件来触发C#函数“Enable Saving”,在这个函数中我将为命令参数中的行启用保存按钮。
有更简单/更专业的方法吗?
答案 0 :(得分:0)
GridView具有CurrentCellChanged
事件。你可以用它。
另一种可能的解决方案是使用RowEnter
或RowLeave
事件。
另一个选项(仅适用于Windows表单)可能是RowValidating
您检查IsCurrentRowDirty
属性是否已更改的事件
IsCurrentRowDirty属性获取一个值,该值指示当前行是否未提交 变化。