编程经验:编程经验:高性能.NET WEB开发(2)--EnableViewState

来源:互联网 发布:老摄像头改网络摄像头 编辑:程序博客网 时间:2024/05/17 03:02
 

EnableViewState

 

简述ViewState的作用,没有ViewState的时候表单会出现什么情况。

 

保持当前页面的一些控件的状态和值,eg:TextBox的值,Label的值,即使它们是visible=false;如果没有EnableViewState这个属性,这些控件就可能取不到值。

1EnableViewState="true"

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="CanYou.NewsSys.Web.Test" EnableViewState="true" %>

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

    <title>EnableViewState</title>

</head>

<body>

    <form id="form1" runat="server">

        <select name="ListBox1" size="4" id="ListBox1"  runat="Server" style="width: 152px; z-index: 102; left: 176px; position: absolute; top: 120px">

        </select>

        <asp:Button runat="server" ID="btnEnableViewState" OnClick="btnEnableViewState_Click"

            Text="EnableViewState" />

    </form>

</body>

</html>

此时运行该应用程序,单击网页上的按钮btnEnableViewState,在ListBox中会添加内容,不断地单击,内容则不断添加;每点击一次,Value值就增加一个值,长度不断变长(1+2..+n+..)。下面是Aspx页面的html源码:

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1"><link href="App_Themes/MainStyle/common.css" type="text/css" rel="stylesheet" /><link href="App_Themes/MainStyle/Controls.css" type="text/css" rel="stylesheet" /><link href="App_Themes/MainStyle/Default.css" type="text/css" rel="stylesheet" /><link href="App_Themes/MainStyle/MainFrame.css" type="text/css" rel="stylesheet" /><link href="App_Themes/MainStyle/StyleSheet.css" type="text/css" rel="stylesheet" /><title>

       EnableViewState

</title></head>

<body>

    <form name="form1" method="post" action="Test.aspx" id="form1">

<div>

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTYyMTk0MjI4OA9kFgICAw9kFgICAQ8QZA8WA2YCAQICFgMQBR7lrqLmiLfnq6/ngrnlh7vmjInpkq7

kuIDmrKHvvIEFHuWuouaIt

+err+eCueWHu+aMiemSruS4gOasoe+8gWcQBR7lrqLmiLfnq6/ngrnlh7vmjInpkq7kuIDmrKHvvIEFHuWuouaIt

+err+eCueWHu+aMiemSruS4gOasoe+8gWcQBR7lrqLmiLfnq6/ngrnlh7vmjInpkq7kuIDmrKHvvIEFHuWuouaIt

+err+eCueWHu+aMiemSruS4gOasoe+8gWdkZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUIT

GlzdEJveDG8AlywMNsh3eflPAEr8Sqv6t+Tkw==" />

</div>

        <select name="ListBox1" id="ListBox1" size="4" style="width: 152px; z-index: 102; left: 176px; position: absolute; top: 120px">

       <option value="客户端点击按钮一次!">客户端点击按钮一次!</option>

       <option value="客户端点击按钮一次!">客户端点击按钮一次!</option>

       <option value="客户端点击按钮一次!">客户端点击按钮一次!</option>

</select>

        <input type="submit" name="btnEnableViewState" value="EnableViewState" id="btnEnableViewState" />

    </form>

</body>

</html>

 

2EnableViewState="false"

不断单击按钮,则只能添加一次。

<div>

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTYyMTk0MjI4OGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFCExpc3RCb3gxCSwMb6JC0NQ1qKDrgEO6T4KcMMo=" />

</div>

一旦页面的控件很多,这种频繁的传递控件状态值对网络的消耗是很大的,因此,ASP.Net提供了EnableViewState属性,系统默认的值为true。当设置为true时,在传递状态值时就包括该控件;如果设置为false,则传递状态值时则不包括它。既然状态值不包括该控件,则客户端对它进行的操作,服务器端是不响应的(value值就不会对这个控件传递状态值)

这样有什么好处呢?如果我们在开发Web应用程序时,某些控件是不需要接受用户的操作或只需要接受一次操作的时候,我们可以将这些控件的EnableViewState属性改为false,这样可以优化我们的程序,提高网络访问的速度。

 

EnableViewState="false"

点击三次button按钮:

value="/wEPDwUKLTYyMTk0MjI4OGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFCExpc3RCb3gxCSwMb6JC0NQ1qKDrgEO6T4KcMMo=" />

---------------------------------------------------------------------------------------------------------------------

EnableViewState=" true "

点击三次button按钮:

value="/wEPDwUKLTYyMTk0MjI4OA9kFgICAw9kFgICAQ8QZA8WA2YCAQICFgMQBR7lrqLmiLfnq6/ngrnlh7vmjInpkq7kuIDmrKHvvIEFHuWuouaIt

+err+eCueWHu+aMiemSruS4gOasoe+8gWcQBR7lrqLmiLfnq6/ngrnlh7vmjInpkq7kuIDmrKHvvIEFHuWuouaIt

+err+eCueWHu+aMiemSruS4gOasoe+8gWcQBR7lrqLmiLfnq6/ngrnlh7vmjInpkq7kuIDmrKHvvIEFHuWuouaIt

+err+eCueWHu+aMiemSruS4gOasoe+8gWdkZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUITGlzdEJveDG8AlywMNsh3eflPAEr8Sqv6t+Tkw==" />

---------------------------------------------------------------------------------------------------------------------

EnableViewState设置为false,则传递状态值时则不包括它(以前的状态和值)

 

相关文章:ASP.Net中控件的EnableViewState属性

原创粉丝点击