Compartir a través de


Sys.WebForms.PageRequestManager (Clase)

Actualización: noviembre 2007

Administra las actualizaciones parciales de páginas de los controles de UpdatePanel del servidor en el explorador. Asimismo, define las propiedades, los eventos y los métodos que se pueden utilizar para personalizar una página web mediante script cliente.

Espacio de nombres:Sys.WebForms

Hereda: nada

var prm = Sys.WebForms.PageRequestManager.getInstance();

Constructor

No debe crear directamente una nueva instancia de la clase PageRequestManager. En su lugar, existe una instancia disponible cuando la representación parcial de páginas está habilitada. Llame al método getInstance para obtener la instancia de la clase PageRequestManager.

Members

Name

Description

Sys.WebForms.PageRequestManager (Constructor)

Inicializa una nueva instancia de la clase Sys.WebForms.PageRequestManager (Clase).

Sys.WebForms.PageRequestManager beginRequest (Evento)

Se provoca antes de que empiece el procesamiento de una devolución de datos asincrónica y se envíe la solicitud de devolución de datos al servidor.

Sys.WebForms.PageRequestManager endRequest (Evento)

Se provoca después de que finalice una devolución de datos asincrónica y se haya devuelto el control al explorador.

Sys.WebForms.PageRequestManager initializeRequest (Evento)

Se provoca durante la inicialización de la devolución de datos asincrónica.

Sys.WebForms.PageRequestManager pageLoaded (Evento)

Se provoca una vez actualizado todo el contenido de la página como consecuencia de una devolución de datos sincrónica o asincrónica.

Sys.WebForms.PageRequestManager pageLoading (Evento)

Se provoca después de recibir la respuesta del servidor a una devolución de datos asincrónica, pero antes de actualizar el contenido de la página.

Sys.WebForms.PageRequestManager abortPostBack (Método)

Detiene todas las actualizaciones que se producen como resultado de una devolución de datos asincrónica.

Sys.WebForms.PageRequestManager dispose (Método)

Libera todos los recursos de ECMAScript (JavaScript) y desasocia los eventos.

Sys.WebForms.PageRequestManager getInstance (Método)

Devuelve la instancia de la clase PageRequestManager para la página.

Sys.WebForms.PageRequestManager isInAsyncPostBack (Propiedad)

Devuelve un valor que indica si el objeto PageRequestManager está procesando una devolución de datos.

Nota

Esta clase contiene miembros privados que admiten la infraestructura de script de cliente y no está prevista su utilización directa desde el código. Los nombres de los miembros privados comienzan con un guión bajo (_).

Comentarios

La clase PageRequestManager administra la representación parcial de páginas en el explorador. Puede actualizar las regiones de la página utilizando uno o varios controles UpdatePanel y un control ScriptManager.

No debe crear directamente una instancia de PageRequestManager. Cuando la representación parcial de páginas está habilitada, una instancia de la clase PageRequestManager está disponible automáticamente. Puede tener acceso a ella a través del método getInstance.

La clase PageRequestManager define eventos que puede utilizar para personalizar la representación parcial de su página. La infraestructura del cliente permite enlazar automáticamente eventos de una forma similar al modo en que los eventos de página del servidor se enlazan automáticamente a métodos como Page_Load. En la tabla siguiente se incluyen los eventos de cliente que puede utilizar y los escenarios en los que podría controlarlos. Los eventos se muestran en la tabla en el orden en que la clase PageRequestManager los llama.

Evento PageRequestManager

Description

initializeRequest

Se provoca antes de que se inicie el procesamiento de la solicitud asincrónica. Puede utilizar este evento para cancelar una devolución de datos.

beginRequest

Se provoca antes de que empiece el procesamiento de una devolución de datos asincrónica y se envíe la devolución de datos al servidor. Puede utilizar este evento para establecer los encabezados de la solicitud o para iniciar una animación que indique que la página se está procesando.

pageLoading

Se provoca después de recibir la respuesta del servidor a una devolución de datos asincrónica, pero antes de actualizar el contenido de la página. Puede utilizar este evento para proporcionar un efecto de transición personalizado para el contenido actualizado.

pageLoaded

Se provoca una vez actualizado todo el contenido de la página, como resultado de una devolución de datos sincrónica o asincrónica. Puede utilizar este evento para proporcionar un efecto de transición personalizado para el contenido actualizado.

endRequest

Se provoca después de que finalice una devolución de datos asincrónica y se haya devuelto el control al explorador. Puede utilizar este evento para proporcionar una notificación a los usuarios o para registrar los errores.

Si la página contiene al menos un control UpdatePanel y el valor SupportsPartialRendering del control ScriptManager es true (valor predeterminado), la biblioteca de JavaScript que define la clase PageRequestManager se registra con el control ScriptManager y está disponible en la página.

Ejemplo

En el ejemplo siguiente se muestra cómo utilizar el evento beginRequest para mostrar una notificación de progreso durante las devoluciones de datos asincrónicas. Se llama al método getInstance para obtener la instancia de PageRequestManager actual. Se incluye script en los controladores para los eventos endRequest y beginRequest.

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void ProcessClick_Handler(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(2000);
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>PageRequestManager beginRequest Example</title>
    <style type="text/css">
    body {
        font-family: Tahoma;
    }
    div.AlertStyle
    {
      background-color: #FFC080;
      top: 95%;
      left: 1%;
      height: 20px;
      width: 270px;
      position: absolute;
      visibility: hidden;
    }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server" />

            <script type="text/javascript" language="javascript">
                Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
                Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
                function BeginRequestHandler(sender, args)
                {
                     var elem = args.get_postBackElement();
                     ActivateAlertDiv('visible', 'AlertDiv', elem.value + ' processing...');
                }
                function EndRequestHandler(sender, args)
                {
                     ActivateAlertDiv('hidden', 'AlertDiv', '');
                }
                function ActivateAlertDiv(visstring, elem, msg)
                {
                     var adiv = $get(elem);
                     adiv.style.visibility = visstring;
                     adiv.innerHTML = msg;                     
                }
            </script>

            <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server">
                <ContentTemplate>
                    <asp:Panel ID="Panel1" runat="server" GroupingText="Update Panel">
                        Last update:
                        <%= DateTime.Now.ToString()%>.
                        <br />
                        <asp:Button runat="server" ID="Button1" Text="Process 1" OnClick="ProcessClick_Handler" />
                        <asp:Button runat="server" ID="Button2" Text="Process 2" OnClick="ProcessClick_Handler" />
                    </asp:Panel>
                </ContentTemplate>
            </asp:UpdatePanel>
            <div id="AlertDiv" class="AlertStyle">
            </div>
        </div>
    </form>
</body>
</html>
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void ProcessClick_Handler(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(2000);
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>PageRequestManager beginRequest Example</title>
    <style type="text/css">
    body {
        font-family: Tahoma;
    }
    div.AlertStyle
    {
      background-color: #FFC080;
      top: 95%;
      left: 1%;
      height: 20px;
      width: 270px;
      position: absolute;
      visibility: hidden;
    }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server" />

            <script type="text/javascript" language="javascript">
                Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
                Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
                function BeginRequestHandler(sender, args)
                {
                     var elem = args.get_postBackElement();
                     ActivateAlertDiv('visible', 'AlertDiv', elem.value + ' processing...');
                }
                function EndRequestHandler(sender, args)
                {
                     ActivateAlertDiv('hidden', 'AlertDiv', '');
                }
                function ActivateAlertDiv(visstring, elem, msg)
                {
                     var adiv = $get(elem);
                     adiv.style.visibility = visstring;
                     adiv.innerHTML = msg;                     
                }
            </script>

            <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server">
                <ContentTemplate>
                    <asp:Panel ID="Panel1" runat="server" GroupingText="Update Panel">
                        Last update:
                        <%= DateTime.Now.ToString()%>.
                        <br />
                        <asp:Button runat="server" ID="Button1" Text="Process 1" OnClick="ProcessClick_Handler" />
                        <asp:Button runat="server" ID="Button2" Text="Process 2" OnClick="ProcessClick_Handler" />
                    </asp:Panel>
                </ContentTemplate>
            </asp:UpdatePanel>
            <div id="AlertDiv" class="AlertStyle">
            </div>
        </div>
    </form>
</body>
</html>

Vea también

Referencia

ScriptManager

UpdatePanel