ASP.Net篇之ViewSatate
ViewState用法:
ViewState是一个保存页面状态的,可以使用户在使用某动态页面时,获得连续性动作的功能,而不需要重新输入一遍数据。
与static静态变量区别在于,如果一个用户访问的时候,ViewSatate与static是没什么区别,但是如果多个用户访问的时候,静态变量就会一直不断的更改,导致数据混乱,但ViewState的话,就是每个用户互不干涉,并且能保存当前页面状态,从而使得一些操作和数据交互更加良好。
用法是:
ViewState可以是一个对象,一个字符串、多种数据类型等等。
Person user = new Person();
ViewState["uservs"] = user; //装箱操作
“每次”需要用到的时候,则是
Person p = ViewState["uservs"] as Person; //拆箱操作
需要注意的是,此时的Person类要进行序列化[Serializable]
综合特点是,可以进行对对象的操作,但是仅仅限于是在同一页面之中。
网上的参考资料:
viewstate的值保存在浏览器的html代码中 , 当浏览器关闭 , 则值消失 , 即viewstate是在本页面之内各函数间进行传值的 , 至于为什么要使用这种方法 , 因为在一个事件发生之后 , 页面可能会刷新 , 如果定义全局变量会被清零 , 所以要使用 viewstate.
ViewState: ViewState 属性提供一个字典对象,用于在对同一页的多个请求之间保留值。这是页用来在往返行程之间保留页和控件属性值的默认方法。在处理页时,页和控件的当前状态会散列为一个字符串,并在页中保存为一个隐藏域或多个隐藏域(如果存储在 ViewState 属性中的数据量超过了 MaxPageStateFieldLength 属性中的指定值)。当将页回发到服务器时,页会在页初始化阶段分析视图状态字符串,并还原页中的属性信息。也可以使用视图状态来存储值。在默认情况下,ViewState不被加密,并且发生服务器-客户端数据传输。 ViewState的关键特性有:存储于页面上,与会话且与页面相关,被序列化,默认发生服务器-客户端传输,默认不被加密。