Exportar (0) Imprimir
Expandir todo

HiddenFieldPageStatePersister (Clase)

Almacena el estado de vista de una página ASP.NET en el cliente Web, en un elemento HTML oculto.

Espacio de nombres: System.Web.UI
Ensamblado: System.Web (en system.web.dll)

public class HiddenFieldPageStatePersister : PageStatePersister
public class HiddenFieldPageStatePersister extends PageStatePersister
public class HiddenFieldPageStatePersister extends PageStatePersister
No aplicable.

Las páginas ASP.NET pueden almacenar el estado de Page entre la solicitud HTTP, inherentemente sin estado, y la respuesta requerida para procesar y proporcionar cualquier página Web. A este estado se le denomina "estado de vista". El mecanismo predeterminado que se utiliza para almacenar el estado de vista de una página y sus controles consiste en uno o varios campos HTML <hidden> incluidos en la página que se proporciona a un cliente desde un servidor Web. La clase Page puede utilizar la clase HiddenFieldPageStatePersister para realizar esta tarea. La clase HiddenFieldPageStatePersister implementa los métodos Save y Load de la clase PageStatePersister, de forma que el objeto Page pueda almacenar el estado en un elemento HTML <hidden>, denominado "__VIEWSTATE", en un cliente Web. Cuando el cliente solicita la misma página al servidor Web (una devolución de datos), ASP.NET analiza el elemento <hidden> y lo convierte en información de estado.

Si la instancia de Page solicitada dispone de una clase PageAdapter asociada, recupera el objeto PageStatePersister de este adaptador utilizando el método GetStatePersister. Los adaptadores pueden reemplazar el método GetStatePersister para que devuelva un objeto PageStatePersister donde se almacene el estado de la página y los controles mediante un método admitido por un cliente específico. Por ejemplo, los clase SessionPageStatePersister almacena el estado de la página y los controles en el servidor Web, en lugar de hacerlo en el cliente, para reducir la cantidad de información que se debe enviar y almacenar en un cliente, que podría tener una memoria y un ancho de banda limitados.

El tamaño máximo del elemento HTML <hidden> "_VIEWSTATE" puede establecerse a través de la propiedad MaxPageStateFieldLength o a través del valor de configuración de MaxPageStateFieldLength. Si se establece este valor y la longitud del elemento "_VIEWSTATE" puede ser mayor que la longitud máxima, el contenido se divide en varios elementos "_VIEWSTATE".

En el siguiente ejemplo de código se muestra la forma de enlazar un control ListBox a los datos de una base de datos con un control SqlDataSource.

<%@ 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>

<!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="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"
          SelectCommand="SELECT LastName FROM Employees">
      </asp:SqlDataSource>

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

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

Cuando se visualiza la página de ejemplo, la clase HiddenFieldPageStatePersister almacena todos los estados de vista en un elemento HTML <hidden>, denominado "__VIEWSTATE".

<!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>

System.Object
   System.Web.UI.PageStatePersister
    System.Web.UI.HiddenFieldPageStatePersister

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
Mostrar:
© 2015 Microsoft