viewstate,viewstate解析
如何关闭viewstate
禁用 ViewState
可以针对单个控件、整个页面或整个应用程序禁用 ViewState,如下所示:
每个控件(在标记上):控件属性里面设置viewstate的值为false.
asp:datagrid EnableViewState="false" ?/
在设计页面,手动点击一下Repeater区域,然后在属性列表框中设置EnableViewState="false"
每个页面(在指令中):在页面的page指令中设置页面的enableViewState属性为false
%@ Page EnableViewState="False" ?%
每个应用程序:(在 web.config 中) Pages EnableViewState="false" ?/
关闭: enableviewstate="false"
%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" enableviewstate="false" %
打开: enableviewstate="true"
%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" enableviewstate="true" %
viewstate 是什么意思?
session知道吧?
viewstate和session的用途一样.只是session的生命周期是整个会话.而viewstate的生命周期则是该页面结束之前.
也就是说你可以保存任意一个对象在viewstate中.然后在该页面的任何地方都可以直接从viewstate中拿出存好的值.
如:
page_load中声明:ViewState["test"]="abc";
某按扭中:ViewState["test"]=ViewState["test"].ToString()+"def";
然后在其它地方直接写:string str=ViewState["test"].ToString();此时可得str的值为"abcdef".
ViewState是什么
顾名思意(视图状态),是一个页面级的变量,也就是如果你定义了
ViewState["username"]="admin";
那么你在该页面可以访问这个变量,在别的页面是访问不到的。
viewstate是什么
就在当前页面中保存数据的.
像session.是会话级别的.只要会话没有过期.session中存的数据就在.
viewstate是页面级别的.只要这个页面在.viewstate中存的数据就在.
就是说viewstate中存的数据只能在声明该变量的页面中使用.
比如在某页的page_load中声明了:ViewState["test"]="fdasfdsa";
那么在该页中的任何一个方法中都可以使用ViewState["test"]来直接得到值"fdsafdsa".