簡體   English   中英

GridView的'OrdersGridView'觸發了未處理的事件RowDeleting

[英]The GridView 'OrdersGridView' fired event RowDeleting which wasn't handled

我一遍又一遍地得到這個錯誤。

將數據加載到GridView中可以正常工作,但是當我想刪除一行時,我收到了該錯誤。

<asp:GridView ID="OrdersGridView" runat="server" AutoGenerateColumns="False" onrowdeleted="OrdersGridView_RowDeleted">
    <Columns>
        <asp:TemplateField HeaderText="Product Name">
            <ItemTemplate>
                <asp:HiddenField runat="server" ID="HiddenField1" Value='<%#Eval("oid")%>'></asp:HiddenField>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="titel" HeaderText="Name" />
        <asp:BoundField DataField="oid" HeaderText="Itemno" />
        <asp:BoundField DataField="prijs" HeaderText="Price" />
        <asp:CommandField ButtonType="Link" CausesValidation="false" HeaderText="Update" ShowDeleteButton="True" />
        <asp:BoundField DataField="prijs" HeaderText="Subtotal" />
    </Columns>
</asp:GridView>

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:

<asp:GridView ID="OrdersGridView" runat="server" AutoGenerateColumns="False" onrowdeleted="OrdersGridView_RowDeleted" OnRowDeleting="OrdersGridView_RowDeleting">

然后在你的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可能會讓您取消活動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM