2010-12-21 14 views
0

考慮我有2個控件,CCompositeC其中包含C。有CCompositeC都有ViewState。如何在子控件重新創建後強制執行ViewState恢復?

現在考慮第三個控件導致回發。

產生的生命週期會如下:

  1. CompositeC試圖恢復狀態。爲此,需要創建子控件,因此它創建了C
  2. C被創建時,它的ViewState被恢復。
  3. 第三個控件的回發事件被觸發。此時處理程序調用CompositeC.RecreatedChildControls()並再次創建C
  4. 一切呈現。

的問題是,C狀態不是在步驟3 RecreateChildControls方法再次恢復應該修改控件的狀態,因此當C重新引入CompositeC控件的集合它的ViewState會自動恢復,但事實並非如此。

我該怎麼辦?

回答

0

其實我發現這是通過設計,它是有道理的。 ViewState旨在允許回發後的狀態恢復。如果在此之後我重新創建了控件,則不會發生。

相關問題