您的位置:首页 > 其它

剖析ViewState的作用

2013-10-14 18:07 344 查看
关于ViewState,我想大家可能都用过,用它来存储一些内容,以便整个页面可以访问。这里我不厌其烦,和大家一起再次温习一下ViewState的一些用法和概念

首先,我们需要知道它是什么,干什么用的。只有明白它的用途,才能知道使用它的时候才能顺手拈来。

ViewState的设计目的主要就是为了将必要的信息持久化在页面中。通过ViewState在页面回传的过程中保存状态值,使原本没有“记忆”的Http协议变得有“记忆”。1、和Hashtable的结构类似,存储控件的值;ViewState机制是asp.net中对同一个Page的多次请求(PostBack)之间维持Page及控件状态的一种机制。

 事实上许多服务器端控件大多数属性值都是利用ViewState来进行数据存储。而不是我们通常想象的那样通过类的私有字段来存储。

2、跟踪ViewState中出现改变的值,以便进一步的处理;

3、通过序列化将ViewState中的值保存在页面的隐藏域(Hidden Field)中(这是默认的持久化方式),并通过反序列化得到对应的ViewState对象以便进行相应的操作;

4、在页面回传的过程中自动的存储ViewState中的跟踪的值。保存一些变量或其他对象,当页面刷新后可取出所保存的数据。

      ViewState("XX")=对象/变量.....

      XXXX=ViewState("XX").ToString()

其次,我们来具体看看怎么用(只有它的机制,这里暂且不说啦,首先我们学习怎么用,然后再去查找资料去了解)

(1)用它来存储数据,例如:其中key1、key2、key3可以改为其他的,自己想定义什么就是什么,只是用的时候保持一致就可以了,没有太多的限制!

      ViewState["Key1"] = 223.32M;              // store a decimal

      valueViewState["Key2"] = "hello";           // store a string

      ViewState["Key3"] = DateTime.Now;    // store a DateTime

      例如GridView控件,用它来存储数据集:

      ViewState["DS_PRODUCTIONPLAN"]=ds;

      GridView1.DataSource=(DataSet)(ViewState["DS_PRODUCTIONPLAN"]);

      GridView1.DataBind();

(2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: