惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

博客园 - NET峰

Bind和Eval的区别详解 常用WebService一览表 信息系统集成分析师高级资格考试 js日期格式化 - NET峰 - 博客园 利用正则表达式实现字符串搜索 玩转.net正则表达式 弹出输入框 c#.net常用函数和方法集 解决 500 Internal Server Error 搜索引擎优化(SEO) Report Server 报表服务器安装sp2补丁后,报表服务器不能用的问题解决方法 asp.net 从excel 导入时 提示:不是预期的格式错误 解决方法 javascript操作表格 示例源码 《msdn开发精选》2005年全部源代码! 创建web.config自定义配置部分 报表制作利器—Reporting Services 使用总结! 简单的XML结合XSL的例子,有助于学习内部的原理(内附源码) XMLHTTP详解 C# 格式化字符串 String.Format (推荐)
自己动手写控件----textbox之实现视图状态!
NET峰 · 2006-09-14 · via 博客园 - NET峰

Posted on 2006-09-14 13:39  NET峰  阅读(486)  评论()    收藏  举报

//为了能实现视图状态就必须实现IStateManager接口
   object IStateManager.SaveViewState()
   {
    object _stateState = null;
    if( _state != null )
     _stateState = ((IStateManager)_state).SaveViewState();
    if ( _stateState == null )
     return null;
    return _stateState;
   }
  void IStateManager.TrackViewState()
  {
   _marked = true;
   if( _state != null )
    ((IStateManager)_state).TrackViewState();
  }
  void IStateManager.LoadViewState( object state )
  {
   if( state != null )
   {
    object _newState = (object)state;        
    ((IStateManager)ViewState).LoadViewState( _newState );
   }
  }
  bool IStateManager.IsTrackingViewState
  {
   get
   {
    return _marked;
   }
  }
  internal new StateBag ViewState //注意,这里覆盖基类的ViewState属性
  {
   get
   {
    if( _state == null )
    {
     _state = new StateBag( true );
     if( ((IStateManager)this).IsTrackingViewState )
      ((IStateManager)_state).TrackViewState();
    }
    return _state;
   }
  }