zoukankan      html  css  js  c++  java
  • EnableViewState 属性

    原文发布时间为: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 值。

  • 相关阅读:
    Begin Example with Override Encoded SOAP XML Serialization
    State Machine Terminology
    How to: Specify an Alternate Element Name for an XML Stream
    How to: Publish Metadata for a WCF Service.(What is the Metadata Exchange Endpoint purpose.)
    Beginning Guide With Controlling XML Serialization Using Attributes(XmlSerializaiton of Array)
    Workflow 4.0 Hosting Extensions
    What can we do in the CacheMetaData Method of Activity
    How and Why to use the System.servicemodel.MessageParameterAttribute in WCF
    How to: Begin Sample with Serialization and Deserialization an Object
    A Test WCF Service without anything of config.
  • 原文地址:https://www.cnblogs.com/handboy/p/7158355.html
Copyright © 2011-2022 走看看