2010-01-25 112 views
0

我有一個aspx頁面,動態加載用戶控件:有一個UpdatePanel持有這些控件(每次一個)。當我用另一個控件更換控件時,它會失敗並顯示以下消息:無法加載視圖狀態

無法加載視圖狀態。視圖狀態爲 的控件 樹必須與前一個應用程序的 期間用於保存視圖狀態的控制樹 相匹配。例如, 動態添加控件時,在返回過程中添加的 控件必須 與在初始 應用程序期間添加的控件的類型和位置匹配。

三個控件的所有繼承自System.Web.UI.UserControl。也許我可以解決這個問題做:

  1. 負載在啓動時三個控件,然後隱藏他們兩個人,因爲我們需要它。
  2. 使用三個UpdatePanels,每個用戶控件一個。
  3. 有什麼建議嗎?

回答

0

通過將回發模式設置爲條件並手動更新它們,確保回發沒有更新不需要的面板。

+0

不,我已經做到了,它拋出了相同的異常。 – VansFannel 2010-01-25 13:42:48

+0

嘗試在你的函數中放置一個斷點,當你回發時你會點擊它。然後使用監視窗口開始在包含您的動態創建的控件的.Controls列表中進行瀏覽。看看你的控件是否存在於該列表中。如果沒有,你將不得不將每個控件添加到它自己的更新面板。 – Daniel 2010-01-25 14:16:08

+0

現在我爲每個控件使用一個UpdatePanel。問題已經解決,但現在我有另一個:Microsoft JScript中的運行時錯誤:Sys.InvalidOperationException:無法找到帶有ID的UpdatePanel。 'CreateDestination1_DestinationMainUpdatePanel'。如果您要動態升級,它必須位於另一個UpdatePanel中。 – VansFannel 2010-01-27 12:47:16

0

當您動態添加用戶控件時,您是否指定了id屬性?你是否再次添加控件,在回發時,將id屬性設置爲相同的值?

相關問題