HiddenFieldPageStatePersister 类

定义

在 Web 客户端上以隐藏的 HTML 元素存储 ASP.NET 页面视图状态。

public ref class HiddenFieldPageStatePersister : System::Web::UI::PageStatePersister
public class HiddenFieldPageStatePersister : System.Web.UI.PageStatePersister
type HiddenFieldPageStatePersister = class
    inherit PageStatePersister
Public Class HiddenFieldPageStatePersister
Inherits PageStatePersister
继承
HiddenFieldPageStatePersister

示例

下面的代码示例演示如何使用 SqlDataSource 控件ListBox将 控件绑定到数据库中的数据。

<%@ Page language="C#" %>

<!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>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          DataSourceMode="DataReader"
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT LastName FROM Employees">
      </asp:SqlDataSource>

      <asp:ListBox
          id="ListBox1"
          runat="server"
          DataTextField="LastName"
          DataSourceID="SqlDataSource1">
      </asp:ListBox>

    </form>
  </body>
</html>
<%@ Page language="VB" %>

<!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>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          DataSourceMode="DataReader"
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT LastName FROM Employees">
      </asp:SqlDataSource>

      <asp:ListBox
          id="ListBox1"
          runat="server"
          DataTextField="LastName"
          DataSourceID="SqlDataSource1">
      </asp:ListBox>

    </form>
  </body>
</html>

查看示例页时,任何视图状态都由 HiddenFieldPageStatePersister 类存储在名为“__VIEWSTATE”的 HTML 元素中 <hidden>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
<HTML>  
  <BODY>  
    <form name="_ctl0" method="post" action="sample.aspx" id="_ctl0">  

      <input type="hidden" name="__VIEWSTATE" value="MgAwADkANgAwADkAOQA3ADgAMQD/AQ8QBQoxMTU2NDc1NjE0EGRkFgICAQ9kFgICAw8PZBAVDQVhc2RhcwhCdWNoYW5hbghDYWxsYWhhbgdEYXZvbGlvCURvZHN3b3J0aAZGdWxsZXIES2luZwhLcmF3YXJpawlMZXZlcmxpbmcETWFyeQdQZWFjb2NrBlN1eWFtYQx0ZXN0IHJlZnJlc2gVDQVhc2RhcwhCdWNoYW5hbghDYWxsYWhhbgdEYXZvbGlvCURvZHN3b3J0aAZGdWxsZXIES2luZwhLcmF3YXJpawlMZXZlcmxpbmcETWFyeQdQZWFjb2NrBlN1eWFtYQx0ZXN0IHJlZnJlc2gUKgMNZ2dnZ2dnZ2dnZ2dnZ2RkZPdhi6U7jBPqVZbj0W8AYFSJ6oiq" />  

      <select size="4" name="ListBox1" id="ListBox1">      
        <option value="Buchanan">Buchanan</option>  
        <option value="Callahan">Callahan</option>  
        <option value="Davolio">Davolio</option>  
        <option value="Dodsworth">Dodsworth</option>  
        <option value="Fuller">Fuller</option>  
        <option value="King">King</option>  
        <option value="Leverling">Leverling</option>  
        <option value="Suyama">Suyama</option>  
      </select>  

    </form>  
  </BODY>  
</HTML>  

注解

ASP.NET 页可以存储 Page 固有的无状态 HTTP 请求与处理和提供任何网页所需的响应之间的状态。 此状态称为“视图状态”。 用于存储页面及其控件的视图状态的默认机制位于从 Web 服务器提供给客户端的页面中包含的一个或多个 <hidden> HTML 字段中。 类 Page 可以使用 HiddenFieldPageStatePersister 类来执行此工作。 HiddenFieldPageStatePersisterSave实现 类的 PageStatePersisterLoad 方法,Page以便 可以将状态<hidden>存储在 Web 客户端上名为“__VIEWSTATE”的 HTML 元素中。 当客户端从 Web 服务器请求同一页 (回发) 时, <hidden> 将分析元素并通过 ASP.NET 转换为状态信息。

如果请求的Page实例具有关联的PageAdapter类,则它使用 GetStatePersister 方法从此适配器检索PageStatePersister对象。 适配器可以重写 方法, GetStatePersister 以返回对象 PageStatePersister ,该对象以特定客户端支持的方式存储页和控件状态。 例如, SessionPageStatePersister 类将页面和控件的状态存储在 Web 服务器上而不是客户端上,以减少必须在内存和带宽可能受限的客户端上发送和存储的信息量。

可以通过 属性或MaxPageStateFieldLength配置设置MaxPageStateFieldLength设置“_VIEWSTATE” <hidden> HTML 元素的最大大小。 如果设置了此值,并且“_VIEWSTATE”元素的长度将超过最大长度,则内容将划分为多个“_VIEWSTATE”元素。

构造函数

HiddenFieldPageStatePersister(Page)

初始化 HiddenFieldPageStatePersister 类的新实例。

属性

ControlState

获取或设置一个对象,该对象表示当前 Page 对象包含的控件用于跨 Web 服务器的 HTTP 请求保留的数据。

(继承自 PageStatePersister)
Page

获取或设置为其创建视图状态持久性机制的 Page 对象。

(继承自 PageStatePersister)
StateFormatter

获取一个 IStateFormatter 对象,该对象在对 ViewStateControlState 方法的调用期间用于对包含在 Save()Load() 属性中的状态信息进行序列化和反序列化。

(继承自 PageStatePersister)
ViewState

获取或设置一个对象,该对象表示当前 Page 对象包含的控件用于跨 Web 服务器的 HTTP 请求保留的数据。

(继承自 PageStatePersister)

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
Load()

Page 对象初始化其控件层次结构时,反序列化并加载 HttpRequest 对象中的持久化状态信息。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
Save()

序列化 ViewStateControlState 属性中包含的任何对象状态,并将状态写入响应流中。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅