ViewState笔记
ViewState是Control类中的一个域,类型为System.Web.UI.StateBag,一个名称/值的对象集合。所有控件与页面通过继承Control来获取ViewState。
ViewState不能跨页面:
如果某Page包含某UserControl,则当UserControl被Page重新加载时该ViewState将不再被保存。只有当页面或控件回传自身时ViewState 才是持续的。
控件也可以将基本状态信息存储在控件状态中,但这些信息不能作为 StateBag 对象存储。
仅在为页请求执行 OnInit 方法后,它才跟踪这些属性的更改,并将更改保存到页或控件的视图状态。
当收到 OnInit 方法通知时,服务器必须执行创建和设置实例所需的任何初始化步骤。在服务器控件生存期的此阶段,控件的视图状态仍需填充。另外,在调用此方法时无法访问其他服务器控件,不论它是此控件的子级还是父级。不一定会创建其他服务器控件,也不一定能够访问它们。