ViewState

ViewState是ASP.NET服务器控件非常重要的一个属性。

ViewState用来保存和传递ASP.NET控件状态(值),反映到HTML。ViewState是通过隐藏输入框(HiddenField)来工作的。

例:

HTML < asp:Button  ID ="btnAdd"  runat ="server"  Text ="Add"  OnClick ="btnAdd_Click"   />< br  />
    
< asp:Label  ID ="lblAcounter"  runat ="server"  Text ="0" ></ asp:Label >
C#       protected   void  btnAdd_ClickTest( object  sender, EventArgs e)
        {
            lblAcounter.Text 
=  (Int32.Parse(lblAcounter.Text)  +   1 ).ToString();
        }

 

点击Button,ASP.NET把控件的状态序列化成一个字符串,通过ViewState回传到服务器,处理后再返回到浏览器。如此,此例中Label的值不断加1。禁掉ViewState后,Label的值将不能回传到服务器,Label将一直为1,不能递增。

1. 可以在<%@ Page %>中加入Trace="True" 来监视ViewState。

ViewState_第1张图片

2. 也可以在Web.config或者页面或者控件中设置EnableViewState="false",来禁掉ViewState。

 

可以用ViewState来在前台页面读取后台的值,进行前后台传值。可以在后台对ViewState进行读写,如:this["strTest"] = "Test String"; 或者string test=this["strTest"]; 在前台页面,只能读取ViewState,不能写:var test="<% =this["strTest"] %>";

ViesState不能跨页面。

 

ASP.NET 2.0 提供了一个新的特性 Control State,Control State和ViewState类似,Control State只保存主要的状态信息。禁掉ViewState时不会同时禁掉Control State,不过Control State默认是关闭的。Control State的一个重要应用是 GridView Control使用Control Satate保存所选的Row

你可能感兴趣的:(view)