2010-12-10 72 views
0

我有这样的代码至今:如何删除一个GridView行

<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中捕获这个,取消删除操作,并且只想在数据库中设置一个“IsDeleted”-Flag。

怎么样?

回答

1

您可以使用RowDeleting事件和GridViewDeleteEventArgs对象的Cancel属性来执行此操作。这里是MSDN页说的话:

的RowDeleting事件中单击某一行的删除按钮时引发,但在GridView控件之前删除该行。这使您可以提供事件处理方法,以便在发生此事件时执行自定义例程,例如取消删除操作。

GridViewDeleteEventArgs对象被传递给事件处理方法,该方法使您可以确定当前行的索引并指示应该取消删除操作。要取消删除操作,请将GridViewDeleteEventArgs对象的Cancel属性设置为true。如果需要,还可以在将值传递到数据源之前操作Keys和Values集合。