페이지의 요청 관리 (PageRequestManager 클래스) by ultteky

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PRMex1.aspx.cs" Inherits="PRMex1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>PageRequestManager</title>
    <style>
    div {font-family:verdana; font-size:12px}
    input {font-family:verdana; font-size:12px}
    .box {padding:5px}
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
       
        <script type="text/javascript">
         var mgr = Sys.WebForms.PageRequestManager.getInstance();
         mgr.add_initializeRequest(OnInitializeRequest);
         mgr.add_beginRequest(OnBeginRequest);
         mgr.add_pageLoading(OnPageLoading);
         mgr.add_pageLoaded(OnPageLoaded);
         mgr.add_endRequest(OnEndRequest);
        
         function OnInitializeRequest(sender, args)
         {
           alert("OnInitializeRequest");
         }
        
         function OnBeginRequest(sender, args)
         {
           alert("OnBeginRequest");
         }
        
         function OnPageLoading(sender, args)
         {
           alert("OnPageLoading");
         }
        
         function OnPageLoaded(sender, args)
         {
           alert("OnPageLoaded");
         }
        
         function OnEndRequest(sender, args)
         {
           alert("OnEndRequest");
         }
       
        </script>

        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
          <div class="box" style="background:#dddddd">
          <p>
              <asp:Label ID="date1" runat="server"></asp:Label>
          </p>
          <p>
              <asp:Button ID="btn1" runat="server" Text="확인" />
          </p>
         
          </div>
       
        </ContentTemplate>
       
        </asp:UpdatePanel>
       
    </form>
</body>
</html>

-------------------------------------------------------------------------------------------

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class PRMex1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        date1.Text = DateTime.Now.ToString();
    }
}
-----------------------------------------------------------------------------------------

initializeRequest

비 동기 요청이 시작하기 전, 준비 과정에서 발생한다. 포스트백을 취소하고자 한다면 이 이벤트 내에서 처리하면된다.

 

beginRequest

비 동기 요청에 의한 포스트백이 서버로 전송되기 전에 발생한다. 요청 헤더를 설정하는등의 작업을 위해 이 이벤트를 사용할 수 있다.

 

pageLoading

비동기 포스트백에 대한 서버의 응답이 도착한 후에 발생한다. 단, 현 시점은 페이지에 어떠한 컨텐츠도 업데이트되기 전임을 기억하자.

 

pageLoaded

페이지의 모든 컨텐츠가 업데이트된 후에 발생한다. 이는 기존 방식의 포스트백인 경우에도 발생된다.

 

endRequest

비 동기 포스트백이 끝난 뒤에 발생한다. 사용자에게 통지를 하거나 발생된 에러에 대한 로그를 남기기 위한 목적으로 이 이벤트를

사용할 수 있다.

 


덧글

댓글 입력 영역