如何在重新创建子控件后强制ViewState恢复?

时间:2010-12-21 17:00:02

标签: c# .net asp.net viewstate

考虑我有2个控件,CCompositeC,其中包含CCCompositeC都有ViewState。

现在考虑第三个控件会导致回发。

生成的生命周期如下:

  1. CompositeC尝试恢复状态。为此,需要创建子控件,以便创建C
  2. 创建C时,将恢复ViewState。
  3. 触发第三个控件的回发事件。此时,处理程序调用{​​{1}}并再次创建CompositeC.RecreatedChildControls()
  4. 一切都呈现。
  5. 问题是在步骤3之后C状态未再次恢复。C方法应该修改控件的状态,以便在RecreateChildControls控件重新引入C时收集它的viewstate会自动恢复,但它没有。

    我该怎么办?

1 个答案:

答案 0 :(得分:0)

实际上我发现这是设计的,这是有道理的。 ViewState旨在允许在回发后进行状态恢复。如果之后我重新创建了我的控件,它就不会发生。