剖析ViewState的作用

关于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)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值