欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

Asp.Net之EnableViewState属性详解

创建时间:2011年08月09日 15:27  阅读次数:(6743)
分享到:
EnableViewState属性的作用是指示是否在页请求之间保持视图状态。如果要保持视图状态,则为 true;否则为 false。默认值为 true。

如果我们未设置EnableViewState属性,那么默认情况下它的值为true.
这时在最终生成的Page页中,.net会往自动生成的一个name='__VIEWSTATE'的隐藏控件中将请求前的数据经加密后保存在这里面。有时候,这会影响网页加载速度,因为它经常会生成很大一串加密字符。本章,我们详细解析一下该属性,以方便在以后的开发中帮助你决定是否应该将该属性设置为false.

先做一个测试:
新建一个Page页,在aspx页中拖入一个ListBox控件与Button控件。如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" % >

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server" >
    <title ></title >
</head >
<body >
    <form id="form1" runat="server" >
    <asp:ListBox ID="list_box" runat="server" Width="200" ></asp:ListBox >
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" / >
    </form >
</body >
</html >


后台代码:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            this.list_box.Items.Add(DateTime.Now.ToString());
        }
    }
}


我们会发现,每次点击一次Button按钮,list_box的Items集合中就会增加一项。
如果我们将该页的EnableViewState设置为false
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" EnableViewState="false" % >


这时候我们会发现,不管点击多少次Button按钮,list_box的Items集合中永远只有最新添加的一项。
这说明,我们设置了EnableViewState=false后,list_box不再保存之前动态添加的内容。

注意:在网上看到有些文章指出,当设置TextBox控件的EnableViewState=false,页面回发后TextBox控件不再显示用户在回发前输入的数据。其实该说法是错误的,即使设置了EnableViewState=false,TextBox控件也会在回发后显示用户之前输入的数据。

总结:
EnableViewState 指定在回发时是否保存服务器控件的的动态属性与值。
EnableViewState 的默认值为 true,设置为false可以降低数据的传送量,我们应该在允许的情况下将该属性设置为false。

关于EnableViewState的设置顺序,请参考本站EnableViewState的设置位置及优先级c
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 88+11=? 的结果(结果是:99)
结  果: