嘿傢伙們,我有一個ASP.NET GridView綁定到DataView,它包含一個DataTable。我沒有使用DataAdapter。更新DataTable?
我想在我的DataTable中更新行,所以我這樣做:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
DataView dv = (DataView)Session["My_DataTable"];
DataTable dt = dv.Table;
int rowIndex = GridView1.Rows[e.RowIndex];
dt.Rows[rowIndex]["FirstName"] = thenewfirstname;
dt.Rows[rowIndex]["MI"] = thenewmi;
dt.Rows[rowIndex]["LastName"] =thenewlastname;
Session["My_DataTable"] = dv;
//Reset the edit index.
GridView1.EditIndex = -1;
//Bind data to the GridView control.
GridView1.DataSource = Session["My_DataTable"];
GridView1.DataBind();
}
底層數據視圖/數據表被正確改變,但在GridView既包含舊行的編輯之前,新在編輯之後的行(也就是說,它增加了一個新的編輯行!)。
例如,如果我們有:
...
Sammy S Samerson
...
並將其更改爲Sammy E Samerson
GridView的說:
...
Sammy S Samerson
Sammy E Samerson
...
我該如何解決這個問題,我做了什麼錯?
您確定Sammy E沒有覆蓋另一個條目?或者你的總排數也增加了? – Jeroen 2010-08-17 18:03:39
我確定沒有條目被覆蓋,並且行數增加1。 – 2010-08-17 18:09:05