C# GridView触发的事件行编辑不是';不处理

C# GridView触发的事件行编辑不是';不处理,c#,asp.net,gridview,C#,Asp.net,Gridview,上面是我的代码 下面是我的.aspx页面 添加新版本 产品 站台 建造日期 出版商 版本# 建造 发行说明 评论 构建列表 上面是我的GridView代码,我还有大约8个其他列,但我删除了它们 即使我有行编辑方法来捕获任何编辑,我的页面仍会不断抛出错误: GridView“gvBuildList”触发了未处理的事件行编辑 说明: 在执行当前操作期间发生未处理的异常 网络请求。有关详细信息,请查看堆栈跟踪 错误及其在代码中的起源 例外情况详情: System.Web.HttpExcept

上面是我的代码

下面是我的.aspx页面


添加新版本
产品
站台
建造日期
出版商
版本#
建造
发行说明
评论



构建列表
上面是我的GridView代码,我还有大约8个其他列,但我删除了它们

即使我有行编辑方法来捕获任何编辑,我的页面仍会不断抛出错误:

GridView“gvBuildList”触发了未处理的事件行编辑

说明:

在执行当前操作期间发生未处理的异常 网络请求。有关详细信息,请查看堆栈跟踪 错误及其在代码中的起源

例外情况详情:

System.Web.HttpException:GridView“gvBuildList”触发事件 未处理的行编辑

源错误:

在执行过程中生成了未处理的异常 当前web请求。关于货物来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常

堆栈跟踪:

HttpException(0x80004005):GridView“gvBuildList”触发事件 未处理的行编辑。
System.Web.UI.WebControl.GridView.OnRowEditing(GridViewEditEventArgs e) +1588857 System.Web.UI.WebControls.GridView.HandleEdit(Int32 行索引)+43
System.Web.UI.WebControl.GridView.HandleEvent(EventArgs e,布尔值 原因验证,字符串验证组)+611
System.Web.UI.WebControl.GridView.RaisePostBackEvent(字符串 事件参数)+205
System.Web.UI.WebControl.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 事件参数)+13
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)+13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +9643314 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesSafteraSyncpoint) +1724年


有什么想法吗?

重新构建应用程序[编译代码],错误就不会再出现了

因为您已经在代码隐藏中编写了代码,但尚未编译。因此gridview没有获取行编辑事件


从gridview代码中转到->构建->重建解决方案删除此选项

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

}
这不是必需的。因为您在创建gridview时使用了自定义模板。我想gridview比您所做的更简单

AutoGenerateEditButton="True"

如果要在gridview中使用自定义模板,则必须使用命令名属性。因为Gridview找不到编辑事件


用这个替换你的gridview,你的代码就会工作。

所以,在尝试了一些不同的方法之后,最简单的解决方案

我在pageload中绑定了gridview。这就是造成这个问题的原因。我所要做的就是将GV绑定移动到

<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" />

在Page_Load方法中,您可以通过添加一个空事件来修复它

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

今天,我也面临着这个问题。一小时后,我注意到Gridview事件选项卡中有两个事件。应注意事件名称:

  • 行更新事件

  • 行更新事件<
    protected void grd_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
    
    }