Sys.WebForms.EndRequestEventArgs 클래스

이벤트 처리기에 인수 정보를 전달하기 위해 Sys.WebForms.PageRequestManager 클래스의 endRequest 이벤트에서 사용됩니다. endRequest 이벤트는 포스트백 요청 처리 작업이 끝난 후 바로 발생합니다.

네임스페이스: Sys.WebForms

상속: Sys.EventArgs

var args = new Sys.WebForms.EndRequestEventArgs(error, dataItems, response);

Name

설명

Sys.WebForms.EndRequestEventArgs 생성자

EndRequestEventArgs 클래스의 새 인스턴스를 초기화합니다.

멤버 이름

설명

Sys.WebForms.EndRequestEventArgs dataItems 속성

ScriptManager 클래스의 RegisterDataItem 메서드를 사용하여 등록된 데이터 항목을 포함하는 JSON 데이터 구조체를 가져옵니다.

Sys.WebForms.EndRequestEventArgs error 속성

Error 개체를 가져옵니다.

Sys.WebForms.EndRequestEventArgs errorHandled 속성

오류가 처리되었는지 여부를 나타내는 값을 가져오거나 설정합니다.

Sys.WebForms.EndRequestEventArgs response 속성

WebRequestExecutor 클래스가 나타내는 응답 개체를 가져옵니다.

참고참고

이 클래스는 클라이언트 스크립트 인프라를 지원하는 전용 멤버를 포함하고 있으며 사용자 코드에서 직접 사용할 수 없습니다. 전용 멤버 이름은 밑줄(_)로 시작합니다.

EndRequestEventArgs 개체는 이벤트 처리기에서 매개 변수로 반환됩니다. 개체의 error 속성을 사용하면 오류가 발생했는지 여부를 확인하고 해당 오류에 대한 자세한 정보를 얻을 수 있습니다. 또한 errorHandled 속성을 사용하면 오류가 이미 처리되었는지 여부를 확인하고 오류를 처리했음을 나타낼 수 있습니다.

다음 예제에서는 EndRequestEventArgs 클래스의 두 속성을 사용하는 방법을 보여 줍니다. UpdatePanel 컨트롤에서 단추의 Click 이벤트 처리기는 ArgumentException 예외를 throw하여 처리되지 않은 예외를 시뮬레이션합니다. 또한 클라이언트 스크립트에서 PageRequestManager 클래스의 endRequest 이벤트 처리기는 error 속성 값을 확인합니다. 이때 오류가 처리되지 않은 서버 예외이면 errorHandled 속성이 true로 설정되고 오류 메시지가 표시됩니다.



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


표시: