我现在有这个代码:
<asp:TemplateField ShowHeader="False" ItemStyle-Width="150px" HeaderStyle-BackColor="#003ca1" HeaderStyle-ForeColor="white">
<ItemTemplate>
<asp:LinkButton ID="linkDelete" runat="server" CausesValidation="False" CommandName="Delete" OnClientClick='return confirm("Diesen Eintrag wirklich löschen?");' Text="Löschen" />
</ItemTemplate>
</asp:TemplateField>
此时,GridView会在物理上删除该行。 我想在CodeBehind中捕获它,取消delete-operation并且只想在数据库中设置“IsDeleted”-Flag。
如何?
答案 0 :(得分:1)
您可以使用GridDeDeteteEventArgs对象的RowDeleting事件和Cancel属性来执行此操作。以下是MSDN页面所说的内容:
单击行的“删除”按钮时,但在GridView控件删除行之前,将引发RowDeleting事件。这使您能够提供事件处理方法,以便在发生此事件时执行自定义例程,例如取消删除操作。
将GridViewDeleteEventArgs对象传递给事件处理方法,该方法使您能够确定当前行的索引并指示应取消删除操作。要取消删除操作,请将GridViewDeleteEventArgs对象的Cancel属性设置为true。如果需要,您还可以在将值传递给数据源之前操作Keys和Values集合。