zoukankan      html  css  js  c++  java
  • 转:asp.net ViewState用法

    asp.net ViewState用法

        ASP.NET中的ViewState

        ViewState是ASP.NET中用来保存WEB控件回传时状态值一种机制.在WEB窗体(FORM)的设置为runat="server",这个窗体(FORM)会被附加一个隐藏的属性_VIEWSTATE._VIEWSTATE中存放了所有控件在ViewState中的状态值.

        ViewState是类Control中的一个域,其他所有控件通过继承Control来获得了ViewState功能.它的类型是system.Web.UI.StateBag,一个名称/值的对象集合.

        当请求某个页面时,ASP.NET把所有控件的状态序列化成一个字符串,然后做为窗体的隐藏属性送到客户端.当客户端把页面回传时,ASP.NET分析回传的窗体属性,并赋给控件对应的值.当然这些全部是由ASP.NET负责的.

        定义ViewState属性

        public int PageCount

        {

        get { return (int)ViewState["PageCount"]; }

        set { ViewState["PageCount"] = value; }

        }

        使用ViewState的条件

        如果要使用 ViewState,则在 ASPX 页面中必须有一个服务器端窗体标记 (<form runat=server>).窗体字段是必需的,这样包含 ViewState 信息的隐藏字段才能回传给服务器.而且,该窗体还必须是服务器端的窗体,这样在服务器上执行该页面时,ASP.NET 页面框架才能添加隐藏的字段.

        Page 的 EnableViewState 属性值为 true.

        控件的 EnableViewState 属性值为 true.

        提醒:

        1. 当存在页面回传时,不需要维持控件的值就要把 ViewState 禁止.

        2. ViewState的索引是大小写敏感的.

        3. ViewState不是跨页面的.

        4. 为了能包存在 ViewState 中,对象必须是可流化或者定义了 TypeConverter.

        5. 控件 TextBox 的 TextMode 属性设置为 Password时,它的状态将不会被保存在 ViewState 中,这应该是出于安全性的考虑.

        6. 在页面没有回传 或 重定向 或 在回传中转到(transfer)其他页面时不要使用 ViewState.

        7. 在动态建立控件时要小心它的 ViewState.

        8. 当禁止一个程序的 ViewState 时,这个程序的所有页面的 ViewState 也被禁止了.

        9. 只有当页面回传自身时ViewState 才是持续的.

        设置ViewState

        ViewState可以在控件,页,程序,全局配置中设置.缺省情况下 EnableViewState 为 true .如果要禁止所有页面 ViewState 功能,可以在程序配置中把 EnableViewState 设为 false .

  • 相关阅读:
    tar解压包的时候出现错误 gzip: stdin: not in gzip format
    解决Ubuntu刚装好的时候su命令密码错误的问题
    如何将Ubuntu左边的面板放到底部
    解决VMware安装Ubuntu的过程中窗口过小无法看到按钮的问题
    无法对视图创建索引,因为该视图未绑定到架构
    Matlab当中size() length()等函数讲解
    解决Matlab当中for循环运行慢的问题
    SqlServer如何获取存储过程的返回值
    Linux的五个查找命令
    linux安装redis官方教程
  • 原文地址:https://www.cnblogs.com/wantingqiang/p/1597760.html
Copyright © 2011-2022 走看看