我有一個gridview依賴於三個級聯下拉列表(在updatepanel中)。當用戶在GridView編輯細胞,改變一個下拉菜單,然後點擊「顯示」它調用下面的代碼隱藏:更新GridView後重新訂購
protected void Save_Click(Object sender, EventArgs e)
{
foreach (GridViewRow gvr in MasterDisplay.Rows)
MasterDisplay.UpdateRow(gvr.RowIndex, false);
MasterDisplay.DataBind();
}
的問題是,在下拉菜單會改變gridview的,所以更新的細胞脫身的訂單。一個例子:假設我有六個項目:A1,A2,A3,B1,B2,B3。如果我編輯B2的價格,則更改顯示'show Bs first'的下拉列表,在結果頁面上,我將看到A2的新價格(即任何順序中的第五個)。
我想,這是因爲在UpdateRow(),我們只更新是根據該指數(gvr.RowIndex),所以不知何故GridView控件得到重新顯示(不失新的價格數據!),然後更新。
有關如何確保將這些更改保存到相應行的任何想法,而不僅僅是現在發生的行與之前具有相同的索引?
爲記錄,我想這樣做顯示點擊,因爲我'會拋出一個模式說「保存更改?Y/N」,其中'Y'是一個與Save_Click關聯的asp:Button。 – ScottieB 2011-12-29 18:45:37