按下编辑按钮时网格未更新
本文关键字:网格 更新 按钮 编辑 编辑按 | 更新日期: 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();
}