原文发布时间为:2009-10-25 —— 来源于本人的百度文章 [由搬家工具导入]

指示是否在页请求之间保持视图状态。如果要保持视图状态,则为 true;否则为 false。默认值为 true。

自己总结

加了EnableViewState="false" 若没造成影响,请尽量加上去

=======================以下转载===================

以上为官方对 EnableViewState 的解释,有些难懂,我们以示例的方式解释,我们创建一个 Web Form,并添加一个 ListBox、一个 Button、一个方法。

程序代码

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    void AddItem(object sender, EventArgs e)
    {
        list.Items.Add(DateTime.Now.Ticks.ToString());
    }
</script><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>EnableViewState 属性</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:ListBox ID="list" runat="server">
        <asp:ListItem Text="EnableViewState 属性" Value="1"></asp:ListItem>
      </asp:ListBox>
      <asp:Button ID="btn" runat="server" Text="追加一个 Item" OnClick="AddItem" />
    </div>
    </form>
</body>
</html>

在浏览器中访问该网页,得到 HTML 源文件中如下内容:

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

这个 hidden 框存储的是各个控件的属性值与状态,比如 ListBox 的 Text、Value、Selected 等,这也是为什么在 ASP.NET 里,可以在服务器端获得列表的 Text 值的原因。

开始实验

现在点击按钮,服务器端将执行 AddItem 方法,ListBox 中的内容也随之增多,查看 HTML 源文件中的“__VIEWSTATE”也随之增多 。关于 DateTime 请参见 ASP.NET 时间操作

再次实验

现在我们修改 ListBox 的 EnableViewState 属性为 false。

<asp:ListBox ID="list" runat="server" EnableViewState="false">

再次点击几下按钮,我们可以发现,之前点击按钮添加的 Item 都不见了,现在每次点击按钮,ListBox 中都只有两个 Item,一个为静态指定的,一个是通过 AddItem 方法添加的。这是由于 ListBox 的内容没有通过“__VIEWSTATE”传送到服务器端,服务器端不知道 ListBox 之前还动态添加的有内容。

注意观察,添加的数字并不相同,这说明每次点击都执行了 AddItem 方法,而不是有些文章所说的,使用 EnableViewState="false" 时方法只执行一次,方法是每次都执行,只是由于没有获得之前动态添加(编辑、删除)后的内容,所以只有最新添加(编辑、删除)的内容。

总结

EnableViewState 指定是否向服务器端传送某(些)控件的属性值、状态。

EnableViewState 的默认值为 true,设置为 false 可以降低数据传送量,当然应该在程序逻辑允许设置为 false 的情况下。

EnableViewState 可用于控件,也可用于 @ Page@ Control@ Master 指令语法。当控件的 EnableViewState 的设置与指令语法的设置不一致时,取 false 值。

EnableViewState 属性的更多相关文章

  1. 转 TextBox的EnableViewState属性问题

    问题如下: ---------------------------------------------------------------------------------------------- ...

  2. EnableViewState

    EnableViewState 系统默认的值为true,在传递状态值时就包括该控件: 为false,则传递状态值时则不包括它. 可以提高网络访问的速度. 某些控件是不需要接受用户的操作或只需要接受一次 ...

  3. ASP.NET中常用的优化性能的方法

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...

  4. c#面试题汇总

    下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补缺用的,真正的把这些题搞懂了,才能“以不变应万变”.回答问题的时候能联系做过项目的例子是最好 ...

  5. 提高ASP.net性能的十种方法

    提高ASP.net性能的十种方法 2014-10-24  空城66  摘自 博客园  阅 67  转 1 转藏到我的图书馆   微信分享:   今天无意中看了一篇关于提高ASP.NET性能的文章,个人 ...

  6. 多条asp.net网站的优化建议

    一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的 ...

  7. 传智播客DotNet面试题

    技术类面试.笔试题汇总(整理者:杨中科,部分内容从互联网中整理而来) 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化 ...

  8. asp.net c# 网上搜集面试题目大全(附答案)

    1.String str=new String("a")和String str = "a"有什么区别? String str = "a"; ...

  9. Webform Application、ViewState

    Application(全局对象) Application对象生存期和Web应用程序生存期一样长,生存期从Web应用程序网页被访问开始,HttpApplication类对象Application被自动 ...

随机推荐

  1. PAT 乙级 1078 / 1084

    题目 PAT 乙级 1078 PAT 乙级 1084 题解 1078和1084这两道题放在一块写,主要是因为这两道题的解法和做题思路非常相似:之前我做这一类题没有一个固定的套路,想到哪写到哪,在某种程 ...

  2. 【TP】TP如何向模板中的js传变量

    <input type="hidden" class= "val" value = "{$value}" /> <scri ...

  3. jQuery的select2下拉框的搜索功能(使用select2插件,方便简单)

    第一步: 引入我们用使用的插件 jquery: select2: css: js: 第二步: 创建一个html页面,body内容: <div> <select class=" ...

  4. Python知识点入门笔记——Python的基本数据类型

    Python的数字分为4种类型:整数(int).浮点数(float).布尔值(bool).复数(complex). type()函数可以知道数据的类型,如type(233)是int型,type(233 ...

  5. 指向class的指针使用方法实例

    // pointer to classes example #include <iostream> using namespace std; class Rectangle { int w ...

  6. 关于欧几里德算法(gcd)的证明

    求a,b的最大公约数我们经常用欧几里得算法解决,也称辗转相除法, 代码很简短, int gcd(int a,int b){ return (b==0)?a:gcd(b,a%b); } 但其中的道理却很 ...

  7. James Bach Rapid Test的感受

    前阶段拜读过James大神的快速测试,英文水平有限,阅读起来有点吃力,虽然想亲自参加大神的培训,一直没有机会,不过阿里牛人参加大神的培训,并总结的不错,现在谈谈自己的感想和看法. 进入测试行业不少年了 ...

  8. C++ 11 从C++ primer第五版的学习笔记

    1. auto (page107) auto 推断会忽略const   const int ci = i, & cr = ci; auto b = ci; // b is an int (to ...

  9. 设计模式学习笔记——java中常用的设计模式

    单例设计模式(Singleton Pattern) 观察者模式(Observer Pattern) 工厂模式(Factory Pattern) 策略模式(Strategy Pattern) 适配器模式 ...

  10. log4j2异步日志配置及官方文档的问题澄清

    配置及demo 方法一全部打开 加启动参数 -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextS ...