zoukankan      html  css  js  c++  java
  • 编程经验:编程经验:高性能.NET WEB开发(2)EnableViewState

    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=" 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属性

  • 相关阅读:
    109 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 03 新增功能及实现 05 问题解析--通过一个方法完成学生和专业的双向关联
    108 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 03 新增功能及实现 04 问题解析--数组未实例化造成的空指针异常
    107 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 03 新增功能及实现 03 编写方法完成学生个数统计功能
    106 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 03 新增功能及实现 02 新增属性完成学生信息存储
    105 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 03 新增功能及实现 01 新增需求及分析
    session与cookie的区别和联系
    session和cookie的区别
    Web服务器主动推送技术
    webSocket的场景应用
    TCP、Http和Socket 优劣比较
  • 原文地址:https://www.cnblogs.com/Gemgin/p/3136317.html
Copyright © 2011-2022 走看看