Sys.WebForms.InitializeRequestEventArgs (Clase)
Actualización: noviembre 2007
Utilizada por el evento initializeRequest de la clase Sys.WebForms.PageRequestManager para pasar información de argumentos a los controladores de eventos.
Espacio de nombres:Sys.WebForms
Hereda:Sys.CancelEventArgs
new Sys.WebForms.InitializeRequestEventArgs();
Constructores
Name |
Description |
---|---|
Inicializa una nueva instancia de la clase InitializeRequestEventArgs. |
Members
Name |
Description |
---|---|
Sys.WebForms.InitializeRequestEventArgs postBackElement (Propiedad) |
Obtiene el elemento de devolución de datos que inició la devolución asincrónica. |
Obtiene el objeto de solicitud que representa la devolución de datos actual. |
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
Los controladores de eventos pueden utilizar la propiedad request para tener acceso al objeto de solicitud, y la propiedad postBackElement para determinar el elemento que produjo la devolución de datos.
El evento initializeRequest de la clase PageRequestManager se provoca antes de que se inicie el procesamiento de la solicitud asincrónica.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar el evento initializeRequest para permitir que se cancele una devolución de datos asincrónica. El script del controlador de eventos initializeRequest determina si una devolución de datos asincrónica está actualmente en curso mediante la propiedad isInAsyncPostBack de la clase PageRequestManager. Si una devolución de datos está en curso, se utiliza la propiedad postBackElement para determinar el identificador del elemento que produjo la devolución de datos. Si el identificador coincide con el identificador de un botón que cancela la devolución de datos, se llama al método abortPostBack de la clase PageRequestManager. De lo contrario, la solicitud actual se cancela mediante la propiedad cancel de la clase CancelEventArgs.
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub ButtonClick_Handler(ByVal sender As Object, ByVal e As System.EventArgs)
System.Threading.Thread.Sleep(3000)
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager initializeRequest Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
div.UpdatePanelStyle{
width: 300px;
height: 300px;
}
div.AlertStyle {
font-size: smaller;
background-color: #FFC080;
height: 20px;
visibility: hidden;
}
div.Container {
display: inline;
float: left;
width: 330px;
height: 300px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript" language="javascript">
var divElem = 'AlertDiv';
var messageElem = 'AlertMessage';
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus);
function CheckStatus(sender, args)
{
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'CancelRefresh') {
prm.abortPostBack();
}
else if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
args.set_cancel(true);
ActivateAlertDiv('visible', 'Still working on previous request.');
}
else if (!prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
ActivateAlertDiv('visible', 'Processing....');
}
}
function ActivateAlertDiv(visString, msg)
{
var adiv = $get(divElem);
var aspan = $get(messageElem);
adiv.style.visibility = visString;
aspan.innerHTML = msg;
}
</script>
<div class="Container" >
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server" >
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" GroupingText="UpdatePanel"
CssClass="UpdatePanelStyle">
Last update:
<%=DateTime.Now.ToString() %>.
<asp:Button runat="server" ID="RefreshButton" Text="Refresh"
OnClick="ButtonClick_Handler" />
<div id="AlertDiv" class="AlertStyle">
<span id="AlertMessage"></span>
<asp:LinkButton ID="CancelRefresh" runat="server">cancel</asp:LinkButton>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</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 ButtonClick_Handler(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(3000);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager initializeRequest Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
div.UpdatePanelStyle{
width: 300px;
height: 300px;
}
div.AlertStyle {
font-size: smaller;
background-color: #FFC080;
height: 20px;
visibility: hidden;
}
div.Container {
display: inline;
float: left;
width: 330px;
height: 300px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript" language="javascript">
var divElem = 'AlertDiv';
var messageElem = 'AlertMessage';
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus);
function CheckStatus(sender, args)
{
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'CancelRefresh') {
prm.abortPostBack();
}
else if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
args.set_cancel(true);
ActivateAlertDiv('visible', 'Still working on previous request.');
}
else if (!prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
ActivateAlertDiv('visible', 'Processing....');
}
}
function ActivateAlertDiv(visString, msg)
{
var adiv = $get(divElem);
var aspan = $get(messageElem);
adiv.style.visibility = visString;
aspan.innerHTML = msg;
}
</script>
<div class="Container" >
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server" >
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" GroupingText="UpdatePanel"
CssClass="UpdatePanelStyle">
Last update:
<%=DateTime.Now.ToString() %>.
<asp:Button runat="server" ID="RefreshButton" Text="Refresh"
OnClick="ButtonClick_Handler" />
<div id="AlertDiv" class="AlertStyle">
<span id="AlertMessage"></span>
<asp:LinkButton ID="CancelRefresh" runat="server">cancel</asp:LinkButton>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</form>
</body>
</html>