• 012-ViewState状态保持


    客户端的状态保持方案:ViewState、隐藏域、Cookies、控件状态、URL查询参数
    服务端的状态保持方案:Session(会话)、Application、Caching(缓存)、DataBase(数据库)

    -》ViewState
    -》示例:使用服务器label控件,添加按钮,能实现+1吗?
    查看源代码,发现生成了span,这是不能提交数据的,这究竟发生了什么?
    本质:隐藏域
    源代码中多了名为ViewState的hidden客户端控件,对状态进行了存储
    -》属性ViewState:是继承于Control类的键值对集合类型的属性
    存储的是:服务器端需要,但是又无法提交给服务器的数据
    实现了服务器端控件
    -》禁用ViewState:
    整个页面禁用:ViewStateMode = ViewStateMode.Disabled
    单个控件禁用:EnableViewState="False"
    禁用后,可以试一试文本框+1,label加1是否还有效?
    -》总结:因为生成了隐藏域,并且存储了太多的内容,所以不推荐使用
    尽量少或不使用ViewState、服务器控件

     1 <%@ Page Language="C#" AutoEventWireup="true"
     2     ViewStateMode="Enabled"
     3     CodeBehind="ViewStateTest.aspx.cs" Inherits="t4_State.ViewStateTest" %>
     4 
     5 <!DOCTYPE html>
     6 
     7 <html xmlns="http://www.w3.org/1999/xhtml">
     8 <head runat="server">
     9     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    10     <title></title>
    11 </head>
    12 <body>
    13     <form id="form1" runat="server">
    14         <div>
    15 
    16             <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
    17             <asp:Label ID="Label1" runat="server" Text="0"></asp:Label>
    18 
    19         </div>
    20     </form>
    21 </body>
    22 </html>
     1     public partial class ViewStateTest : System.Web.UI.Page
     2     {
     3         protected void Page_Load(object sender, EventArgs e)
     4         {
     5             if (!IsPostBack)
     6             {
     7                 ViewState["yg"] = "杨过";
     8             }
     9         }
    10 
    11         protected void Button1_Click(object sender, EventArgs e)
    12         {
    13             Label1.Text = (int.Parse(Label1.Text) + 1).ToString();
    14             //Label1.Text = ViewState["yg"].ToString();
    15         }
    16     }
  • 相关阅读:
    PHP脚本如何正确启用sg11安全组件?
    android修改系统时系统黑屏时不进入休眠状态
    计算机自考视频汇总【福利资料】[转]
    解决MySql报错:1130
    “领导想提拔你,看的从不是努力
    interTbale ___AlterTable
    MySQL数据库管理系统概述
    《分布式任务调度平台XXL-JOB》
    mysql 在线文档
    Oracle19c 数据库在线文档
  • 原文地址:https://www.cnblogs.com/ninghongkun/p/6287594.html
Copyright © 2020-2023  润新知