xiaoQcn

导航

gridview 删除事件


首先:转摘一段GridView删除的文章

RowDeleting和RowDeleted事件
RowDeleting发生在删除数据之前,RowDeleted发生在删除数据之后。
使用RowDeleting事件,可以在真正删除前再次确认是否删除,可以通过设置GridViewDeleteEventArgs.Cancel=True来取消删除;也可以用于判断当前数据库记录数,如果只剩一条记录且数据库不能为空则提示并取消删除操作。
使用RowDeleted事件,可以在删除后,通过GridViewDeletedEventArgs的Exception属性判断删除过程中是否产生异常,如无异常,则可以显示类似于” 1 Records deleted” 之类的提示信息。

Example:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//取得当前行号,并取得当前行的GridViewRow对象
int index=e.RowIndex ;
GridViewRow gvr=GridView1.Rows[index];

      //取得当前行第二个单元格中的文字
str1 = gvr.Cells[1].Text;

      //进行提示
Message.Text ="您将删除一个用户,其姓名为"+str1 ;
}

protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
//如果没有产生异常,则提示成功删除,否则提示删除失败
if (e.Exception == null)
Message.Text += "<br>您成功删除了"+str1 ;
else
Message.Text += "删除失败,请联系管理员";
}

其次:需要特别说明,如果在GridView中添加了模板列并在其中添加了按钮,只要按钮的CommandName="Delete" 则GridView控件自动触发 GridView1_RowDeleting 事件,因此你必须添加后台代码来实现。

第三:对删除按钮增加“确定”对话框,有三种方法
1、在后台类代码中编写
lb.Attributes.Add("onclick", "return confirm('您真的要删除此行吗?')");
2、在前台代码中编写
<div id="de" onclick="JavaScript:return confirm('确定删除吗?')">删除</div>
在Div中首先触发的是OnClick事件,然后执行其他事件
例如:<a href="Default.aspx" onclick="return confirm('确定删除吗?')">删除</a>
首先执行,OnClick,然后执行超级链接,若OnClick被取消了,其余的也被取消了。
3、有的控件可能还有OnClientClick事件。
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete" Text="删除" OnClientClick="return confirm('确认要删除吗?')></asp:LinkButton>

我一般优先选择第三种方法。

posted on 2009-08-10 23:00  xiaoQcn  阅读(456)  评论(0编辑  收藏  举报