2013-05-27 42 views
0

我有一個DataSet1其中4 rows我綁定到GridView1
GridView1有一個Edit (image) command
當用戶點擊第1行時,在RowEditing event中,我將刪除DataSet1中的特定行(第0行)並更新GridView1
EditIndex爲0並重新綁定DataSet1GridView1GridView更改RowEditing上的EditIndex然後取消ViewState中的編輯收益錯誤

GridView1.EditIndex = 0; 
GridView1.DataSource = DataSet1; 
GridView1DataBind(); 

用戶取消編輯時出現問題。我正在錯誤:

Failed to load viewstate. 
The control tree into which viewstate is being loaded must match the control 
tree that was used to save viewstate during the previous request. 

例如,動態地添加控件時,一個後回過程中添加的控制必須在初始請求期間添加的控件的類型和位置相匹配。

這似乎是由於我設置的原始EditIndex(行1)和新的EditIndex(第0行)不匹配。

回答

0

我找到了解決方案。 ViewState中的不匹配是因爲當GridView1.EditIndex更新時,事件參數字段e.NewEditIndex的值(我猜是更新ViewState)沒有更新。請參閱下面更新的代碼:

GridView1.EditIndex = 0; 
e.NewEditIndex = 0; 
GridView1.DataSource = DataSet1; 
GridView1DataBind();