1

我有以下代码:

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;
}

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

谁能看到我做错了什么?

4

1 回答 1

0

正确设置您的DataKeyNames

确保该键只能唯一标识网格中的一行。

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

于 2012-07-12T13:24:59.663 回答