Compartir a través de


Sys.WebForms.EndRequestEventArgs (Clase)

Actualización: noviembre 2007

Utilizada por el evento endRequest de la clase Sys.WebForms.PageRequestManager para pasar información de argumentos a los controladores de eventos. El evento endRequest se provoca inmediatamente después de que termina de procesarse la solicitud de devolución de datos.

Espacio de nombres: Sys.WebForms

Hereda: Sys.EventArgs

new Sys.WebForms.EndRequestEventArgs();

Constructores

Name

Descripción

Sys.WebForms.EndRequestEventArgs (Constructor)

Inicializa una nueva instancia de la clase EndRequestEventArgs.

Members

Nombre del miembro

Descripción

Sys.WebForms.EndRequestEventArgs dataItems (Propiedad)

Obtiene una estructura de datos JSON que contiene los elementos de datos registrados mediante el método RegisterDataItem de la clase ScriptManager.

Sys.WebForms.EndRequestEventArgs error (Propiedad)

Obtiene el objeto Error.

Sys.WebForms.EndRequestEventArgs errorHandled (Propiedad)

Obtiene o establece un valor que indica si el error se ha controlado.

Sys.WebForms.EndRequestEventArgs response (Propiedad)

Obtiene un objeto de respuesta representado por la clase WebRequestExecutor.

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

Se devuelve un objeto EndRequestEventArgs como un parámetro en un controlador de eventos. Puede utilizar su propiedad error para determinar si se produjo un error y para obtener los detalles sobre el error. Puede utilizar también la propiedad errorHandled para determinar si ya se ha controlado el error y para indicar que ha controlado el error.

Ejemplo

En el ejemplo siguiente se muestra cómo se utilizan las dos propiedades de la clase EndRequestEventArgs. Un controlador de eventos Click de un botón en un control UpdatePanel produce una excepción ArgumentException para simular una excepción no controlada. En el script de cliente, un controlador del evento endRequest de la clase PageRequestManager comprueba el valor de la propiedad error. Si el error es una excepción de servidor no controlada, el script establece la propiedad errorHandled en true y muestra un mensaje de error.

<%@ 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 ErrorProcessClick_Handler(ByVal sender As Object, ByVal e As System.EventArgs)

        ' This handler demonstrates an error condition. In this example
        ' the server error gets intercepted on the client and an alert is shown. 
        Throw New ArgumentException()

    End Sub

    Protected Sub SuccessProcessClick_Handler(ByVal sender As Object, ByVal e As System.EventArgs)

        'This handler demonstrates no server side exception.
        UpdatePanelMessage.Text = "The asynchronous postback completed successfully."

    End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>PageRequestManager endRequestEventArgs Example</title>
    <style type="text/css">
    body {
        font-family: Tahoma;
    }
    div.AlertStyle{
    position: absolute; width: 90%; top: 0%;
    visibility: hidden; z-index: 99; background-color: #ffff99;
    font-size: larger;  font-family: Tahoma; 
    border-right: navy thin solid; border-top: navy thin solid; 
    border-left: navy thin solid; border-bottom: navy thin solid;    
    }
    </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_endRequest(EndRequestHandler);
                var divElem = 'AlertDiv';
                var messageElem = 'UpdatePanelMessage';
                function ToggleAlertDiv(visString)
                {
                     var adiv = $get(divElem);
                     adiv.style.visibility = visString;

                }
                function ClearErrorState() {
                     $get(messageElem).innerHTML = '';
                     ToggleAlertDiv('hidden');

                }
                function EndRequestHandler(sender, args)
                {
                   if (args.get_error() != null)
                   {
                       var errorName = args.get_error().name;
                       if (errorName.length > 0 )
                       {
                          args.set_errorHandled(true);
                          ToggleAlertDiv('visible');
                          $get(messageElem).innerHTML = 'The panel did not update successfully.';
                       }
                   }

                }
            </script>

            <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server">
                <ContentTemplate>
                    <asp:Panel ID="Panel1" runat="server" GroupingText="Update Panel">
                        <asp:Label ID="UpdatePanelMessage" runat="server" />
                        <br />
                        Last update:
                        <%= DateTime.Now.ToString() %>
                        .
                        <br />
                        <asp:Button runat="server" ID="Button1" Text="Submit Successful Async Postback"
                            OnClick="SuccessProcessClick_Handler" OnClientClick="ClearErrorState()" />
                        <asp:Button runat="server" ID="Button2" Text="Submit Async Postback With Error"
                            OnClick="ErrorProcessClick_Handler" OnClientClick="ClearErrorState()" />
                        <br />
                    </asp:Panel>
                </ContentTemplate>
            </asp:UpdatePanel>
            <div id="AlertDiv" class="AlertStyle" style="">
                <div id="AlertMessage" style="float: left">
                    There was a problem processing the last request.
                </div>
                <div id="AlertLinks" style="float: right">
                    <a title="Hide this alert." href="#" onclick="ClearErrorState()">
                        close</a> | <a title="Send an email notifying the Web site owner."
                            href="mailto:someone@example.com" onclick="ToggleAlertDiv('hidden', 'AlertDiv')">
                            notify</a></div>
            </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 ErrorProcessClick_Handler(object sender, EventArgs e)
    {
        // This handler demonstrates an error condition. In this example
        // the server error gets intercepted on the client and an alert is shown. 
        throw new ArgumentException();
    }
    protected void SuccessProcessClick_Handler(object sender, EventArgs e)
    {
        // This handler demonstrates no server side exception.
        UpdatePanelMessage.Text = "The asynchronous postback completed successfully.";
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>PageRequestManager endRequestEventArgs Example</title>
    <style type="text/css">
    body {
        font-family: Tahoma;
    }
    div.AlertStyle{
    position: absolute; width: 90%; top: 0%;
    visibility: hidden; z-index: 99; background-color: #ffff99;
    font-size: larger;  font-family: Tahoma; 
    border-right: navy thin solid; border-top: navy thin solid; 
    border-left: navy thin solid; border-bottom: navy thin solid;    
    }
    </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_endRequest(EndRequestHandler);
                var divElem = 'AlertDiv';
                var messageElem = 'UpdatePanelMessage';
                function ToggleAlertDiv(visString)
                {
                     var adiv = $get(divElem);
                     adiv.style.visibility = visString;

                }
                function ClearErrorState() {
                     $get(messageElem).innerHTML = '';
                     ToggleAlertDiv('hidden');

                }
                function EndRequestHandler(sender, args)
                {
                   if (args.get_error() != null)
                   {
                       var errorName = args.get_error().name;
                       if (errorName.length > 0 )
                       {
                          args.set_errorHandled(true);
                          ToggleAlertDiv('visible');
                          $get(messageElem).innerHTML = 'The panel did not update successfully.';
                       }
                   }

                }
            </script>

            <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server">
                <ContentTemplate>
                    <asp:Panel ID="Panel1" runat="server" GroupingText="Update Panel">
                        <asp:Label ID="UpdatePanelMessage" runat="server" />
                        <br />
                        Last update:
                        <%= DateTime.Now.ToString() %>
                        .
                        <br />
                        <asp:Button runat="server" ID="Button1" Text="Submit Successful Async Postback"
                            OnClick="SuccessProcessClick_Handler" OnClientClick="ClearErrorState()" />
                        <asp:Button runat="server" ID="Button2" Text="Submit Async Postback With Error"
                            OnClick="ErrorProcessClick_Handler" OnClientClick="ClearErrorState()" />
                        <br />
                    </asp:Panel>
                </ContentTemplate>
            </asp:UpdatePanel>
            <div id="AlertDiv" class="AlertStyle" style="">
                <div id="AlertMessage" style="float: left">
                    There was a problem processing the last request.
                </div>
                <div id="AlertLinks" style="float: right">
                    <a title="Hide this alert." href="#" onclick="ClearErrorState()">
                        close</a> | <a title="Send an email notifying the Web site owner."
                            href="mailto:someone@example.com" onclick="ToggleAlertDiv('hidden', 'AlertDiv')">
                            notify</a></div>
            </div>
        </div>
    </form>
</body>
</html>

Vea también

Referencia

Sys.WebForms.PageRequestManager endRequest (Evento)

Sys.WebForms.PageRequestManager (Clase)