关于网格视图

时间:2012-07-11 15:30:54

标签: c# .net gridview buttonclick

我有以下代码:

protected void BtnSave_Click(object sender, EventArgs e)
{
    DataTable dt = new DataTable();
    dt = (DataTable)ViewState["CurrentData"];

    int id = Convert.ToInt32(Session["id"]);

    dt.Rows[index: id + 1][0] = TextBox1.Text;
    dt.Rows[index: id + 1][1] = TextBox2.Text;
    dt.Rows[index: id + 1][2] = TextBox3.Text;
    dt.Rows[index: id + 1][3] = TextBox4.Text;

    dt.AcceptChanges();
    GridView2.DataSource = dt;
    GridView2.DataBind();
    TextBox1.Text = "";
    TextBox2.Text = "";
    TextBox3.Text = "";
    TextBox4.Text = "";
    BtnCancle.Visible = false;
    BtnSave.Visible = false;
}

出于某种原因,当我编辑第四行时,更新的更改会影响第二行。

谁能看到我做错了什么?

1 个答案:

答案 0 :(得分:0)

正确设置DataKeyNames

确保密钥只能唯一标识网格中的一行。

您正在呼叫AcceptChanges()。这导致数据最终确定。如果有任何排序规则,您的数据将被重新排序。接受更改后,第4行可能不在同一位置。