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 |
---|---|
Inicializa una nueva instancia de la clase Sys.WebForms.PageRequestManager (Clase). |
|
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. |
|
Se provoca después de que finalice una devolución de datos asincrónica y se haya devuelto el control al explorador. |
|
Se provoca durante la inicialización de la devolución de datos asincrónica. |
|
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. |
|
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. |
|
Detiene todas las actualizaciones que se producen como resultado de una devolución de datos asincrónica. |
|
Libera todos los recursos de ECMAScript (JavaScript) y desasocia los eventos. |
|
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>