The GridView fired event RowEditing which wasn't handled

7
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace AppManagementConsole
{
    public partial class _Default : Page
    {
        string BuildUploadPath = ConfigurationManager.AppSettings["DirectoryPath"] + "Files/";
        string ReleaseNotesUpPath = ConfigurationManager.AppSettings["DirectoryPath"] + "ReleaseNotes/";

    protected void Page_Load(object sender, EventArgs e)
    {
        cpBuildDate.SelectedDate = DateTime.Now;
        getBuildData();
    }

    public void getBuildData()
    {
        //Select Build List
        SqlCommand selectCommand = new SqlCommand("Select * from tblBuildList");

        try
        {
            //Connect to DB
            using (SqlConnection conRDB = new SqlConnection(ConfigurationManager.ConnectionStrings["conRDB"].ConnectionString))
            {
                SqlDataAdapter selectAdapater = new SqlDataAdapter(selectCommand.CommandText, conRDB);

                DataSet dsBuilds = new DataSet();
                selectAdapater.Fill(dsBuilds);

                //Populate Webpage GV
                gvDataBind(dsBuilds);
            }
        }

        catch (Exception ex)
        {
        }
    }


    public void gvDataBind(DataSet dsBuilds)
    {
        gvBuildList.Dispose();
        gvBuildList.DataSource = dsBuilds;
        gvBuildList.DataBind();
    }

    protected void gvBuildList_RowEditing(object sender, GridViewEditEventArgs e)
    {
        gvBuildList.PageIndex = e.NewEditIndex;
        //Bind data to the GridView control.
        getBuildData();
    }

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        //Upload Files
        UploadFiles();

        //Update SQL Table
        AddBuildInfo(txtProduct.Text, txtPlatform.Text, cpBuildDate.SelectedDate, txtPublisher.Text, txtVersion.Text, BuildUploadPath,FileUpBuild.FileName, ReleaseNotesUpPath, FileUpRelease.FileName, txtComments.Text);
    }

    private void UploadFiles()
    {
        #region Build
        string tempfileDir = @"C:\Publish\TempFileStorage\";
        if (FileUpBuild.HasFile)
        {
            try
            {
                if (!Directory.Exists(tempfileDir))
                {
                    Directory.CreateDirectory(tempfileDir);
                }
                FileUpBuild.SaveAs(@"C:\Publish\TempFileStorage\" + FileUpBuild.FileName);
                FTP.FtpUpload(BuildUploadPath, FileUpBuild.FileName, tempfileDir + FileUpBuild.FileName);
                //FileUpBuild.SaveAs();
                //FileUpBuild.FileContent();
            }
            catch (Exception ex)
            {
            }
            finally
            {
                File.Delete(@"C:\Publish\TempFileStorage\" + FileUpBuild.FileName);
            }
        }
        #endregion

        #region ReleaseNotes
        if (FileUpRelease.HasFile)
        {
            try
            {
                if (!Directory.Exists(tempfileDir))
                {
                    Directory.CreateDirectory(tempfileDir);
                }
                FileUpRelease.SaveAs(@"C:\Publish\TempFileStorage\" + FileUpRelease.FileName);
                FTP.FtpUpload( ReleaseNotesUpPath, FileUpRelease.FileName, tempfileDir + FileUpRelease.FileName);
                //FileUpBuild.SaveAs();
                //FileUpBuild.FileContent();
            }
            catch (Exception ex)
            {
            }
            finally
            {
                File.Delete(@"C:\Publish\TempFileStorage\" + FileUpRelease.FileName);
            }
        }
        #endregion

    }

    private void AddBuildInfo(string product, string platform, DateTime builddate, string publisher, string version, string location, string filename, string releaseloc, string releasefile, string comment)
    {
        try
        {
            using (SqlConnection conRDB = new SqlConnection(ConfigurationManager.ConnectionStrings["conRDB"].ConnectionString))
            {
                SqlCommand insertCommand = new SqlCommand("Insert into tblBuildList " +
                                                "Values('" + product + "'," +
                                                        "'" + platform + "'," +
                                                        "'" + builddate + "'," +
                                                        "'" + publisher + "'," +
                                                        "'" + version + "'," +
                                                        "'" + location + "'," +
                                                        "'" + filename + "'," +
                                                        "'" + releaseloc + "'," +
                                                        "'" + releasefile + "'," +
                                                        "'" + comment + "')", conRDB);
                conRDB.Open();
                insertCommand.ExecuteNonQuery();

                getBuildData();
                conRDB.Close();
            }
        }

        catch (Exception ex)
        {
        }
    }

    protected void btnUpBuild_Click(object sender, EventArgs e)
    {
        string tempfileDir = @"C:\Publish\TempFileStorage\";
        if (FileUpBuild.HasFile)
        {
            try
            {
                if (!Directory.Exists(tempfileDir))
                {
                    Directory.CreateDirectory(tempfileDir);
                }
                FileUpBuild.SaveAs(@"C:\Publish\TempFileStorage\" + FileUpBuild.FileName);
                FTP.FtpUpload(BuildUploadPath, FileUpBuild.FileName, tempfileDir + FileUpBuild.FileName);
                //FileUpBuild.SaveAs();
                //FileUpBuild.FileContent();
            }
            catch (Exception ex)
            {
            }
            finally
            {
                File.Delete(@"C:\Publish\TempFileStorage\" + FileUpBuild.FileName);
            }
        }
    }

    protected void btnUpRelease_Click(object sender, EventArgs e)
    {
        string tempfileDir = @"C:\Publish\TempFileStorage\";
        if (FileUpRelease.HasFile)
        {
            try
            {
                if (!Directory.Exists(tempfileDir))
                {
                    Directory.CreateDirectory(tempfileDir);
                }
                FileUpRelease.SaveAs(@"C:\Publish\TempFileStorage\" + FileUpRelease.FileName);
                FTP.FtpUpload( ReleaseNotesUpPath, FileUpRelease.FileName, tempfileDir + FileUpRelease.FileName);
                //FileUpBuild.SaveAs();
                //FileUpBuild.FileContent();
            }
            catch (Exception ex)
            {
            }
            finally
            {
                File.Delete(@"C:\Publish\TempFileStorage\" + FileUpRelease.FileName);
            }
        }
    }

}

Above is my code behind

Below is my .aspx page

<div id="Addnewbuild">
    <h3>Add a New Build</h3>
    <table>
        <tr>
            <th>
                <asp:Label ID="lblHeader1" runat="server">Product</asp:Label>
            </th>
            <th>
                <asp:Label ID="lblHeader2" runat="server">Platform</asp:Label>
            </th>
            <th>
                <asp:Label ID="lblHeader3" runat="server">Build Date</asp:Label>
            </th>
            <th>
                <asp:Label ID="lblHeader31" runat="server">Publisher</asp:Label>
            </th>
            <th>
                <asp:Label ID="lblHeader4" runat="server">Version #</asp:Label>
            </th>
            <th>
                <asp:Label ID="lblHeader5" runat="server">Build</asp:Label>
            </th>
            <th>
                <asp:Label ID="lblHeader6" runat="server">Release Notes</asp:Label>
            </th>
            <th>
                <asp:Label ID="lblHeader7" runat="server">Comments</asp:Label>
            </th>
        </tr>
        <tr>
            <td>
                <asp:TextBox ID="txtProduct" runat="server" Width="150px"></asp:TextBox>
            </td>
            <td>
                <asp:TextBox ID="txtPlatform" runat="server" Width="75px"></asp:TextBox>
            </td>
            <td>
                <ew:CalendarPopup ID="cpBuildDate" ControlDisplay="TextBoxButton" Text="Change Date"
                    runat="server" SelectedDate="" VisibleDate="" Visible="True" Enabled="True" Width="100px">
                </ew:CalendarPopup>
            </td>
            <td>
                <asp:TextBox ID="txtPublisher" runat="server" Width="75px"></asp:TextBox>
            </td>
            <td>
                <asp:TextBox ID="txtVersion" runat="server" Width="75px"></asp:TextBox>
            </td>
            <td>
                <asp:FileUpload ID="FileUpBuild" runat="server" />
                <!--<asp:Button ID="btnUpBuild" runat="server" Text="Upload Build" OnClick="btnUpBuild_Click" />-->
            </td>
            <td>
                <asp:FileUpload ID="FileUpRelease" runat="server" />
                <!--<asp:Button ID="btnUpRelease" runat="server" Text="Upload Release Notes" OnClick="btnUpRelease_Click" />-->
            </td>
            <td>
                <asp:TextBox ID="txtComments" runat="server" Width="100px" TextMode="MultiLine"></asp:TextBox>
            </td>
        </tr>
    </table>

    <asp:Button ID="btnSubmit" Text="Submit" runat="server" OnClick="btnSubmit_Click" />
</div>
<br />
<br />
<br />

<div id="buildlist">
    <h3>Build List</h3>
            <asp:GridView ID="gvBuildList" runat="server" AutoGenerateColumns="False" AllowPaging="True" OnRowEditing="gvBuildList_RowEditing" AutoGenerateEditButton="True">
                <Columns>
                    <asp:TemplateField HeaderText="Product">
                        <ItemTemplate>
                            <asp:Label ID="lblProduct" runat="server" Text='<%#Eval("ProductName")%>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtGVProduct" runat="server" Text='<%#Eval("ProductName")%>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Platform">
                        <ItemTemplate>
                            <asp:Label ID="lblplatform" runat="server" Text='<%#Eval("Platform")%>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtGVPlatform" runat="server" Text='<%#Eval("Platform")%>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Build Date">
                        <ItemTemplate>
                            <asp:Label ID="lblbldDate" runat="server" Text='<%#Eval("BuildDate")%>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtGVbldDate" runat="server" Text='<%#Eval("BuildDate")%>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Publisher">
                        <ItemTemplate>
                            <asp:Label ID="lblPublisher" runat="server" Text='<%#Eval("Publisher")%>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtGVPublisher" runat="server" Text='<%#Eval("Publisher")%>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Version #">
                        <ItemTemplate>
                            <asp:Label ID="lblVersion" runat="server" Text='<%#Eval("VersionNumber")%>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtGVVersion" runat="server" Text='<%#Eval("VersionNumber")%>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Build">
                        <ItemTemplate>
                            <asp:Label ID="lblbldLocation" runat="server" Text='<%#Eval("FileName")%>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtGVbldLocation" runat="server" Text='<%#Eval("FileName")%>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Release Notes">
                        <ItemTemplate>
                            <asp:Label ID="lblRelease" runat="server" Text='<%#Eval("ReleaseFileName")%>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtGVRelease" runat="server" Text='<%#Eval("ReleaseFileName")%>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Comments">
                        <ItemTemplate>
                            <asp:Label ID="lblComments" runat="server" Text='<%#Eval("Comments")%>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtGVComments" runat="server" Text='<%#Eval("Comments")%>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:CommandField ShowEditButton="True" ButtonType="Button" />
                    <asp:CommandField ShowDeleteButton="True" ButtonType="Button" />
                    <asp:TemplateField HeaderText="Actions">
                        <ItemTemplate>
                            <asp:ImageButton ID="btnDwnld" runat="server" ImageURL="Images/hard-drive-download.png" Width="20" Height="20" />
                            <asp:ImageButton ID="btnEmail" runat="server" ImageURL="Images/email-icon.png" Width="20" Height="20" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
</div>

Above is my GridView code, I have about 8 other columns too but I removed them.

Even though I have the row Editing method to catch any edits, my page keeps on throwing the error:

The GridView 'gvBuildList' fired event RowEditing which wasn't handled.

Description:

An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details:

System.Web.HttpException: The GridView 'gvBuildList' fired event RowEditing which wasn't handled.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

HttpException (0x80004005): The GridView 'gvBuildList' fired event RowEditing which wasn't handled.
System.Web.UI.WebControls.GridView.OnRowEditing(GridViewEditEventArgs e) +1588857 System.Web.UI.WebControls.GridView.HandleEdit(Int32 rowIndex) +43
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +611
System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) +205
System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +9643314 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724

Any ideas?

c#
asp.net
gridview
asked on Stack Overflow Nov 1, 2012 by ArjaaAine • edited Nov 3, 2012 by Picrofo Software

7 Answers

6

You can fix it by adding an empty event

protected void grd_RowDeleting(object sender, GridViewDeleteEventArgs e)
{

}
answered on Stack Overflow Dec 31, 2014 by developernader • edited Jul 27, 2016 by developernader
4

Just change the "CommandName" property of the "Edit" or "Delete" button from "Edit" to "Editttt" "Delete" to "Deleteee" (or something else which is relevent to you but make sure it is not "Edit" or "Delete"). It will works fine.

answered on Stack Overflow Aug 15, 2017 by Ramil Mammadov • edited Sep 12, 2017 by Ramil Mammadov
1

From your gridview Code remove this

AutoGenerateEditButton="True"

This is not required.as you have taken the Custom Template in creating your gridview.I guess the gridview is more simple than what you have done.

<asp:GridView ID="gvBuildList" runat="server" AutoGenerateColumns="False" AllowPaging="True" OnRowEditing="gvBuildList_RowEditing">
                                        <AlternatingRowStyle CssClass="alt"></AlternatingRowStyle>
                                        <Columns>
 <asp:BoundField DataField="ProductName" HeaderText="Product Name" SortExpression="ProductName" />
 <asp:BoundField DataField="Platform" HeaderText="Platform" SortExpression="Platform" />
 <asp:BoundField DataField="BuildDate" HeaderText="Build Date" SortExpression="BuildDate" />
 <asp:BoundField DataField="Publisher" HeaderText="Publisher" SortExpression="Publisher" />
 <asp:BoundField DataField="VersionNumber" HeaderText="Version #" SortExpression="VersionNumber" />
 <asp:BoundField DataField="FileName" HeaderText="Build" SortExpression="FileName" />
 <asp:BoundField DataField="ReleaseFileName" HeaderText="Release Notes" SortExpression="ReleaseFileName" />
 <asp:BoundField DataField="Comments" HeaderText="Comments" SortExpression="Comments" />

 <asp:ButtonField ButtonType="Image" CommandName="Edit" HeaderText="Edit"
                                                ImageUrl="Images/hard-drive-download.png" ShowHeader="True" Text="Edit" />

If you want to use Custom Template in gridview then you have to Use Command Name property. as Gridview will not find the Edit event.

Replace your gridview with this one and your code will work.

answered on Stack Overflow Nov 3, 2012 by Moiz
0

ReBuild you application [Compile your code] and your error will be no more.

As you have written code in Code behind but not compiled. so gridview is not getting the Row_editing event.

Goto -> Build -> Rebuild Solution

answered on Stack Overflow Nov 1, 2012 by Moiz
0

So, after trying out a few different things, the simplest solution.

I had my gridview binding in pageload. That was what was causing this issue. All I had to do was move the GV binding to

    if (!Page.IsPostBack)
    {
        getBuildData();
    }

Within the Page_Load Method

answered on Stack Overflow Nov 3, 2012 by ArjaaAine
0

Today, I also faced this problem. After one hour, I noticed that there are two events in Gridview events tab. Events names should be noted:

  1. RowUpdating Event

  2. RowUpdate Event

Make sure you are using right event for your code.

answered on Stack Overflow Mar 22, 2016 by Kamran • edited Mar 22, 2016 by Mogsdad
0

The GridView 'GridView1' fired event RowEditing which wasn't handled

Just change CommandName="Edit" to others like CommandName="RowEdit"

answered on Stack Overflow Apr 12, 2020 by Nazmul Nadim

User contributions licensed under CC BY-SA 3.0