2012-07-11 44 views
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; 
} 

,當我編輯的第四行第二行的更新變化影響的一些原因。

任何人都可以看到我做錯了什麼?

+0

1)你如何初始化Session [「id」] 2)你可能因爲排序而出錯 – mslliviu 2012-07-12 13:40:19

回答

0

正確設置您的DataKeyNames

確保密鑰可以唯一標識網格中的一行。您可以致電AcceptChanges()。這會導致數據完成。如果有任何排序規則,您的數據將被重新排序。在接受更改後,第4行可能不在同一位置。