科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件ASP.NET2.0服务器控件之自定义状态管理(三)

ASP.NET2.0服务器控件之自定义状态管理(三)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

我们曾经介绍了视图状态和控件状态的基本概念和典型应用,从中可以发现,视图状态和控件状态对于自定义服务器控件实现的重要性。本文将继续这一主题,重点介绍实现视图状态和控件状态自定义管理的方法。

作者:金属边缘 来源:天极开发 2007年11月6日

关键字: ASP.NET 服务器控件 状态管理 Windows

  • 评论
  • 分享微博
  • 分享邮件
自定义控件状态管理

  视图状态件状态在数据管理方面不太相同。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方法保存的上一个页请求还原控件状态信息。

  小结
 
  本章主要介绍了自定义视图状态和控件状态管理的内容。它们对于实现自定义服务器控件有着重要意义。建议读者首先深入理解理论知识,然后再尝试进行开发工作,这样可获得更好的学习效果。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章