GridView的’OrdersGridView’触发了未处理的事件RowDeleting

我一遍又一遍地得到这个错误。

将数据加载到GridView中可以正常工作,但是当我想删除一行时,我收到了该错误。

    <asp:HiddenField runat="server" ID="HiddenField1" Value=''>          

C#codebehind – 我并没有真正删除数据库中的行,但这是一个测试:

 protected void OrdersGridView_RowDeleted(object sender, System.Web.UI.WebControls.GridViewDeletedEventArgs e) { if (e.Exception != null) { lblStatus.Text = e.Exception.ToString(); } else { string sValue = ((HiddenField)OrdersGridView.SelectedRow.Cells[1].FindControl("HiddenField1")).Value; lblStatus.Text = sValue; } } 

但点击后,我得到一个bigass黄页,下一个错误:

GridView的’OrdersGridView’触发了未处理的事件RowDeleting。

删除按钮,甚至是删除了CommandName的GridView中的常规按钮,将自动尝试触发OnRowDeleting。 您可以添加它以使事情变得愉快,但不要让它做任何事情,因此它不会影响删除的行为。

您可以将OnRowDeleting添加到GridView:

  

然后在你的CodeBehind中添加:

 void OrdersGridView_RowDeleting (object sender, GridViewDeleteEventArgs e) { } 

将您的行命令名称从删除更改为任何其他类似deleterecord

看起来您正在处理“onrowdeleted”事件,而不是“RowDeleting”事件

在你的标记中,更改:onrowdeleted =“OrdersGridView_RowDeleted”

to RowDeleting =“OrdersGridView_RowDeleting”

查看此事件的文档:您还将看到您的处理程序的签名需要更改: http : //msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.onrowdeleting.aspx你的新处理程序看起来像这样:

  protected void OrdersGridView_RowDeleting(object sender, System.Web.UI.WebControls.GridViewDeleteEventArgs e) { if (e.Exception != null) { lblStatus.Text = e.Exception.ToString(); } else { string sValue = ((HiddenField)OrdersGridView.SelectedRow.Cells[1].FindControl("HiddenField1")).Value; lblStatus.Text = sValue; } } 

发生RowDeleting事件,然后是onrowdeleted事件。 RowDeleting可能会让您取消活动。