Sys.WebForms.PageRequestManager 클래스

업데이트: 2007년 11월

브라우저에서 서버 UpdatePanel 컨트롤의 부분 페이지 업데이트를 관리합니다. 또한 클라이언트 스크립트를 사용하여 웹 페이지를 사용자 지정하는 데 사용할 수 있는 속성, 이벤트 및 메서드를 정의합니다.

네임스페이스:Sys.WebForms

상속: 없음

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

생성자

PageRequestManager 클래스의 새 인스턴스는 직접 만들지 않습니다. 대신 부분 페이지 렌더링을 사용하는 경우에 인스턴스를 사용할 수 있습니다. getInstance 메서드를 호출하여 PageRequestManager 클래스의 인스턴스를 가져올 수 있습니다.

멤버

이름

설명

Sys.WebForms.PageRequestManager 생성자

Sys.WebForms.PageRequestManager 클래스의 새 인스턴스를 초기화합니다.

Sys.WebForms.PageRequestManager beginRequest 이벤트

비동기 포스트백 처리 작업이 시작되고 포스트백 요청이 서버에 전달되기 전에 발생합니다.

Sys.WebForms.PageRequestManager endRequest 이벤트

비동기 포스트백이 끝나고 제어가 브라우저에 반환된 후에 발생합니다.

Sys.WebForms.PageRequestManager initializeRequest 이벤트

비동기 포스트백을 초기화하는 동안 발생합니다.

Sys.WebForms.PageRequestManager pageLoaded 이벤트

동기 또는 비동기 포스트백의 결과로 페이지의 모든 콘텐츠가 새로 고쳐진 후에 발생합니다.

Sys.WebForms.PageRequestManager pageLoading 이벤트

비동기 포스트백에 대한 서버의 응답이 수신된 후 페이지의 콘텐츠가 업데이트되기 전에 발생합니다.

Sys.WebForms.PageRequestManager abortPostBack 메서드

비동기 포스트백의 결과로 발생하는 모든 업데이트를 중지합니다.

Sys.WebForms.PageRequestManager dispose 메서드

ECMAScript(JavaScript) 리소스를 해제하고 이벤트를 분리합니다.

Sys.WebForms.PageRequestManager getInstance 메서드

페이지에 대한 PageRequestManager 클래스의 인스턴스를 반환합니다.

Sys.WebForms.PageRequestManager isInAsyncPostBack 속성

PageRequestManager 개체에서 포스트백을 처리하고 있는지 여부를 나타내는 값을 반환합니다.

참고

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

설명

PageRequestManager 클래스는 브라우저에서 부분 페이지 렌더링을 관리합니다. 하나 이상의 UpdatePanel 컨트롤과 ScriptManager 컨트롤을 사용하여 페이지의 영역을 업데이트할 수 있습니다.

PageRequestManager의 인스턴스는 직접 만들지 않습니다. 부분 페이지 렌더링을 사용하는 경우 자동으로 PageRequestManager 클래스의 인스턴스를 사용할 수 있습니다. getInstance 메서드를 통해 이 인스턴스에 액세스할 수 있습니다.

PageRequestManager 클래스는 페이지의 부분 페이지 렌더링을 사용자 지정하는 데 사용할 수 있는 이벤트를 정의합니다. 클라이언트 인프라에서는 서버 페이지 이벤트가 Page_Load와 같은 메서드에 자동으로 바인딩되는 방식과 비슷한 자동 이벤트 바인딩을 지원합니다. 다음 표에서는 사용할 수 있는 클라이언트 이벤트 및 각 이벤트를 처리하는 시나리오를 보여 줍니다. 각 이벤트는 PageRequestManager 클래스에서 호출되는 순서대로 나와 있습니다.

PageRequestManager 이벤트

설명

initializeRequest

비동기 요청 처리 작업이 시작되기 전에 발생합니다. 이 이벤트를 사용하여 포스트백을 취소할 수 있습니다.

beginRequest

비동기 포스트백 처리 작업이 시작되고 포스트백이 서버에 전달되기 전에 발생합니다. 이 이벤트를 사용하여 요청 헤더를 설정하거나, 페이지에서 요청이 처리되고 있음을 나타내는 애니메이션을 시작할 수 있습니다.

pageLoading

비동기 포스트백에 대한 서버의 응답이 수신된 후 페이지의 콘텐츠가 업데이트되기 전에 발생합니다. 이 이벤트를 사용하여 업데이트된 콘텐츠에 사용자 지정 전환 효과를 제공할 수 있습니다.

pageLoaded

동기 또는 비동기 포스트백의 결과로 페이지의 모든 콘텐츠가 새로 고쳐진 후에 발생합니다. 이 이벤트를 사용하여 업데이트된 콘텐츠에 사용자 지정 전환 효과를 제공할 수 있습니다.

endRequest

비동기 포스트백이 끝나고 제어가 브라우저에 반환된 후에 발생합니다. 이 이벤트를 사용하여 사용자에게 알림을 제공하거나 오류를 기록할 수 있습니다.

페이지에 UpdatePanel 컨트롤이 적어도 하나 이상 포함되어 있고 ScriptManager 컨트롤의 SupportsPartialRendering 값이 true(기본값)이면 PageRequestManager 클래스를 정의하는 JavaScript 라이브러리가 ScriptManager 컨트롤에 등록되어 페이지에서 사용할 수 있습니다.

예제

다음 예제에서는 beginRequest 이벤트를 사용하여 비동기 포스트백 중에 진행률 알림을 표시하는 방법을 보여 줍니다. 이 예제에서는 현재 PageRequestManager 인스턴스를 가져오기 위해 getInstance 메서드가 호출됩니다. 또한 beginRequestendRequest 이벤트에 대한 처리기에 스크립트가 포함되어 있습니다.

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

참고 항목

참조

ScriptManager

UpdatePanel