代码之家  ›  专栏  ›  技术社区  ›  tsimon

如何使用动态添加的控件子类访问control.viewstate?

  •  0
  • tsimon  · 技术社区  · 16 年前

    我们已经创建了一个控件,它需要通过控件类的ViewState属性来持久化数据。我们的类子类严格控制以访问viewstate属性(它在页面对象上受到保护)。我们正在向OnInit中的page.controls添加控件,然后尝试在OnPreload中设置ViewState属性。

    当我们对页面的视图状态进行解码和检查时,我们的值没有被写出,因此不能用于以后的检索。

    是否有人知道如何让我们的控件参与ViewState过程?

    3 回复  |  直到 16 年前
        1
  •  1
  •   JackCorn    16 年前

    问题是直接向页面添加控件。不幸的是,这在控件层次结构上太高,无法参与窗体视图状态处理。如果将该控件添加到实际aspnet表单的Controls集合中,则它将成功参与loadViewStateRecursive和saveViewStateRecursive。

        2
  •  0
  •   Jay Mooney    16 年前

    尝试在OnInit中创建控件,然后将其添加到页面。在OnLoad期间控件。

        3
  •  0
  •   Community CDub    7 年前

    视图状态在OnInit之后加载,但在OnLoad之前加载。

    以下是页面生命周期的大致概述( GregMac )发布这个是为了回应我之前的一个问题。

  • 初始化
  • 加载视图状态
  • 加载回发数据
  • 调用控制加载事件
  • 呼叫负载事件
  • 呼叫控制事件
  • 控件预呈现
  • 预置器
  • SaveVIEW状态
  • 卸货