按下编辑按钮时网格未更新

本文关键字:网格 更新 按钮 编辑 编辑按 | 更新日期: 2023-09-27 18:21:11

我有一个网格视图。

我正在尝试编辑它,但值没有得到更新。

我的代码:

 protected void Page_Load(object sender, EventArgs e)
        {
            con = new SqlConnection("Data Source=192.168.51.71;Initial Catalog=WebBasedNewSoft;User ID=sa;password=prabhu");
            BindGrid();
        }
        private void BindGrid()
        {
            try
            {
                da = new SqlDataAdapter("select * from emp", con);
                DataSet ds = new DataSet();
                da.Fill(ds);
                GridView1.DataSource = ds.Tables[0];
                GridView1.DataBind();
            }
            catch (Exception ex)
            {
            }
        }
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            int index = GridView1.EditIndex;
            GridViewRow row = GridView1.Rows[index];
            string eName = ((TextBox)row.Cells[2].Controls[0]).Text.ToString().Trim();
            try
            {
                con.Open();
                cmd = new SqlCommand("update emp set empName='" + eName + "'", con);
                cmd.ExecuteNonQuery();
                con.Close();
                BindGrid();
                GridView1.EditIndex = -1;
            }
            catch (Exception ex)
            {
            }
            finally
            {
            }
        }
        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            BindGrid();
        }
    }

请让我知道我犯错误的地方。

按下编辑按钮时网格未更新

Page_Load事件中使用Page.IsPostBack内部的BindGrid(),如下所示

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

编辑1

我认为下面的行应该工作

   BindGrid();
   GridView1.EditIndex = -1;

由于它不起作用,请查看catch块中是否存在任何错误。

  catch (Exception ex)
  {
       Response.Write(ex.Message);
  }

看看有没有什么错误?

你可以这样尝试。。。因为。。。当您单击编辑按钮时,首先调用页面加载事件。。。。在页面加载时,您再次绑定网格视图。。。所以它的编辑索引丢失了,因为它再次绑定。。。并且它每次都将编辑索引设置为-1。。。

 protected void Page_Load(object sender, EventArgs e)
        {
        if(!Page.IsPostBack)
              {
             con = new SqlConnection("Data Source=192.168.51.71;Initial            Catalog=WebBasedNewSoft;User ID=sa;password=prabhu");
            BindGrid();
        }
}

Edit1:更新编辑模式Doesnt后的OP。。你必须设置网格视图编辑索引之前,它的绑定如下。。。。

try
            {
                con.Open();
                cmd = new SqlCommand("update emp set empName='" + eName + "'", con);
                cmd.ExecuteNonQuery();
                con.Close();
                GridView1.EditIndex = -1;//Put this line Before the Binding of GridView
                BindGrid();
            }