ASP.NET2.0服务器控件之自定义状态管理(3)
点击次数:28 次 发布日期:2008-11-26 12:52:11 作者:源代码网
|
源代码网推荐 源代码网推荐 视图状态与控件状态在数据管理方面不太相同。ASP.net 2.0在支持针对简单属性的默认视图状态管理机制的同时,还支持自定义视图状态管理。然而,对于控件状态管理而言,则不存在默认控件状态管理机制。开发人员必须实现自定义控件状态管理过程。本小节介绍一下自定义控件状态管理的实现方法,这对于实现基于控件状态功能的对象有着重要意义。 源代码网推荐 源代码网推荐 实际上,在前面系列文章介绍控件状态的过程中,读者已经接触了控件状态实现的内容,其中就包括自定义控件状态管理的实现。这个过程的实现与基于Control基类的自定义视图状态管理非常相似,二者都需要重写Control基类中的方法。实现自定义控件状态管理需要重写Control基类的SaveControlState和LoadControlState。下面列举了一段简单示例代码。 源代码网推荐 源代码网推荐 public class Sample : Control { 源代码网推荐 private int currentIndex = 0; 源代码网推荐 protected override void OnInit(EventArgs e) { 源代码网推荐 Page.ReGISterRequiresControlState(this); 源代码网推荐 base.OnInit(e); 源代码网推荐 } 源代码网推荐 protected override object SaveControlState() { 源代码网推荐 return currentIndex != 0 ? (object)currentIndex : null; 源代码网推荐 } 源代码网推荐 protected override void LoadControlState(object state) { 源代码网推荐 if (state != null) { currentIndex = (int)state; } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 实现自定义控件状态管理分为3个关键步骤: 源代码网推荐 源代码网推荐 (1)调用RegisterRequiresControlState方法。该方法用于将自定义控件注册为具有持久性控件状态的控件。 源代码网推荐 源代码网推荐 (2)重写SaveControlState方法。该方法用于保存自页回发到服务器后发生的任何服务器控件状态更改。 源代码网推荐 源代码网推荐 (3)重写LoadControlState方法。该方法用于从SaveControlState方法保存的上一个页请求还原控件状态信息。 源代码网推荐 源代码网推荐 小结 源代码网推荐 源代码网推荐 本章主要介绍了自定义视图状态和控件状态管理的内容。它们对于实现自定义服务器控件有着重要意义。建议读者首先深入理解理论知识,然后再尝试进行开发工作,这样可获得更好的学习效果。 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
