1

当我不重新绑定时,Gridview 仍处于编辑模式,为什么?但是当我重新绑定gridview它成功退出eidt模式时,为什么?

代码:

protected void gvTest_EditCancel(Object sender, GridViewCancelEditEventArgs e) 
{
    gvTest.EditIndex = -1;
  //  connectToDb();
    Response.Write("<br/>"+ "Editing cancelled");
}`

public void connectToDb() 
{
    SqlConnection sqlcon = new SqlConnection(constrng);
    String com1 = "select * from login";
    SqlCommand sqlcom = new SqlCommand(com1, sqlcon);
    SqlDataAdapter sqlda = new SqlDataAdapter(sqlcom);
    DataSet ds = new DataSet();

    try
    {
        sqlcon.Open();
        sqlda.Fill(ds);
        gvTest.DataSource = ds;
        gvTest.DataBind();
    }
    catch (Exception exc)
    {
        Response.Write(exc.ToString());
    }
    finally
    {
        sqlcon.Close();
    }
}

但是当调用 ConnectToDb() 重新绑定时,它成功退出编辑模式,重新绑定与编辑或退出有什么关系?

4

1 回答 1

0

是 EditIndex 告诉 gridview 它处于编辑模式。

要编辑的行的从零开始的索引。默认值为 -1,表示未编辑任何行。

微软_

编辑 gridview 时,EditIndex 设置为 GridView RowIndex,它始终为 0 或大于 0。因此 GridView 保持在编辑模式。要退出编辑模式,您需要将索引设置为 -1。当您取消编辑时,它会将此索引设置为 -1。

在 RowCancelingEdit 中,我们可以将 editindex 设置为 -1。但在我们重新绑定该行之前,它不会将该行更改为正常模式。当我们重新绑定 gridview 时,它会重置行(OnRowDataBound)。(但它不会重置 EditIndex,我错了)。这就是为什么每当我们进行任何行编辑或删除时,我们都需要重新绑定gridview,

所以,

  1. 要退出编辑模式,我们必须设置 EditIndex = -1
  2. 在我们重新绑定 GridView 之前,EditIndex 更改不会反映。
于 2013-10-11T21:32:59.617 回答