Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The GridView 'OrdersGridView' fired event RowDeleting which wasn't handled

Tags:

c#

gridview

I’m getting this error over and over again.

Loading the data into the GridView works, but when I want to delete a row I'm getting that error.

<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 - I'm not really deleting the row from the database but it's a test:

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;
    }
}

But after clicking, I get a bigass yellow page with the next error:

The GridView 'OrdersGridView' fired event RowDeleting which wasn't handled.

like image 981
Janis Avatar asked Aug 23 '10 00:08

Janis


2 Answers

Having a Delete button, or even a regular button in a GridView with a CommandName of delete, will automatically try to fire OnRowDeleting. You can just add it in to make things happy, but don't have it do anything so it doesn't affect the behavior of your delete.

You could add OnRowDeleting to your GridView:

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

And then in your CodeBehind add:

void OrdersGridView_RowDeleting (object sender, GridViewDeleteEventArgs e)
{
}
like image 74
Joel Beckham Avatar answered Nov 11 '22 20:11

Joel Beckham


change your row command name from delete to any other like deleterecord

like image 6
nilesh Avatar answered Nov 11 '22 20:11

nilesh