Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在GridView中单击更新按钮时触发行编辑_C#_Asp.net_Gridview_Webforms - Fatal编程技术网

C# 在GridView中单击更新按钮时触发行编辑

C# 在GridView中单击更新按钮时触发行编辑,c#,asp.net,gridview,webforms,C#,Asp.net,Gridview,Webforms,我创建了一个GridView,如下所示: protected void Page_Load(object sender, EventArgs e) { GridView gv = new GridView(); gv.ID = pId.ToString(); gv.AutoGenerateEditButton = true; gv.DataKeyNames = ids; gv.RowEditing += gv_RowEditing; gv.RowU

我创建了一个
GridView
,如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    GridView gv = new GridView();
    gv.ID = pId.ToString();
    gv.AutoGenerateEditButton = true;
    gv.DataKeyNames = ids;
    gv.RowEditing += gv_RowEditing;
    gv.RowUpdating += gv_RowUpdating;
    bindGv(pId, gv);
}
我还编写了以下方法:-

行更新

void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    GridView gv = sender as GridView;
    GridViewRow row = (GridViewRow)gv.Rows[e.RowIndex];
    ProductCategory pc = context.ProductCategories.First(s => s.Name ==gv.ID );
    TextBox txtName = row.FindControl("txtName") as TextBox;
    pc.Name = txtName.Text;
}
void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
    GridView gv = sender as GridView;
    gv.EditIndex = e.NewEditIndex;
    bindGv(Convert.ToInt32(gv.ID), gv);
}
行编辑

void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    GridView gv = sender as GridView;
    GridViewRow row = (GridViewRow)gv.Rows[e.RowIndex];
    ProductCategory pc = context.ProductCategories.First(s => s.Name ==gv.ID );
    TextBox txtName = row.FindControl("txtName") as TextBox;
    pc.Name = txtName.Text;
}
void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
    GridView gv = sender as GridView;
    gv.EditIndex = e.NewEditIndex;
    bindGv(Convert.ToInt32(gv.ID), gv);
}

但当我在调试模式下运行代码时,单击更新按钮将调用
gv_行编辑
方法,而不是
gv_行更新
。问题是什么?

当您单击“编辑”按钮以更新它称为“行编辑事件”的任何记录时,触发gridview事件的顺序,之后当您单击“更新”按钮时,它称为“行更新事件”。 rowediting事件始终先调用,然后再调用RowUpdate