ViewState了解(小部分)(2012-8-21)

 

ViewState可实现的功能:

  1. 以名值对的形式来存储控件的值,和hashtable的结构类似。
  2. 跟踪那些ViewState中出现改变的值,以便对这些脏数据(dirty)进行进一步的处理。
  3. 通过序列号将ViewState中的值保存在页面的隐藏域(hidden field)中(此为默认的持久化方式),通过反序列化得到对应的ViewState对象以便进行相应的操作。
  4. 在页面回传的过程中自动地存储ViewState中跟踪的值。

 

ViewState不可用于实现的功能

  1. 自动保存一个类中变量的状态,无论是public还是private或者protected都不可以。
  2. 不能在界面回传的过程中记住所有的值
  3. 只要存在ViewState,那么每次页面请求时重新构造的数据操作是不必要的。
  4. ViewState不存储那些通过post名值对回传来的数据值。

 

ViewState作为一个整体出现在.NetFrameWork框架中有的它的唯一目的:

在页面回传过程中,保存状态值。

 

 

ViewState是用来存储数据的

ViewState通过string类型的数据作为索引。(ViewState不允许通过整型下表的方式对其中的项进行访问。)

ViewState对应项中的值可以存储成任何类型的。因为实际上任何类型的数据存储到ViewState中都被装箱成object类型。

 

大多数服务器控件存储其属性值的存储方式是通过ViewState方式来存储,而非通过私有类的字段来存储。

 

在viewstate中,只要调用了trackViewstate()方法,如果其后出现赋值操作,那么数据就会被标记为脏数据。

 

Asp.net是在页面生命周期的Oninit阶段才开始调用trackViewstate()f方法的。

posted on 2012-08-21 17:31  雨 落  阅读(196)  评论(0)    收藏  举报