庖丁解牛Asp.net3.5控件和组件开发技术系列—页面状态机制(三)2011-05-09 MSDN 郑健6.3 控件状态机制自ASP.NET 2.0开始支持控件状态机制。控件的状态数据现在能通过控件状态而不是视图状态被保持,控件状态是不能够像视图状态那样被禁用的。由于控件状态的工作方式与视图状态完全一致,并且默认情况下在页面中它们都是存储在同一个隐藏域中,这里对它的工作原理就不多介绍了。与LoadViewState和SaveViewState类似,控件状态也是提供了一对这样的方法,方法名称分别为LoadControlState和SaveControl State,并且也是在Control基类中提供。

图6-5中加灰底部分是控件状态在控件生命周期中的阶段。如果启用控件状态功能,只需实现以下几个方法:
/// <summary>
/// 获得本书更多内容,请看:
/// http://blog.csdn.net/ChengKing/archive/2008/08/18/2792440.aspx
/// </summary>
public class ControlStatePeriod : WebControl
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Page.RegisterRequiresControlState(this);
}
protected override object SaveControlState()
{
//… …
}
protected override void LoadControlState(object savedState)
{
//… …
}
}