수색…


라이프 사이클 이벤트

다음은 페이지 수명주기 이벤트입니다.

PreInit - PreInit은 페이지 수명주기의 첫 번째 이벤트입니다. IsPostBack 속성을 확인하고 페이지가 포스트 백인지 여부를 확인합니다. 테마 및 마스터 페이지를 설정하고, 동적 컨트롤을 만들고, 프로필 속성 값을 가져오고 설정합니다. 이 이벤트는 OnPreInit 메서드를 재정의하거나 Page_PreInit 처리기를 만들어 처리 할 수 ​​있습니다.

Init - Init 이벤트는 컨트롤 속성을 초기화하고 컨트롤 트리가 작성됩니다. 이 이벤트는 OnInit 메서드를 재정의하거나 Page_Init 처리기를 만들어 처리 할 수 ​​있습니다.

InitComplete - InitComplete 이벤트로 뷰 상태를 추적 할 수 있습니다. 모든 컨트롤은 뷰 상태 추적을 켭니다.

LoadViewState - LoadViewState 이벤트는 뷰 상태 정보를 컨트롤에로드 할 수 있도록합니다.

LoadPostData -이 단계에서 태그가 처리 된 상태에서 모든 입력 필드의 내용이 정의됩니다.

PreLoad - PreLoad는 포스트 백 데이터가 컨트롤에로드되기 전에 발생합니다. 이 이벤트는 OnPreLoad 메서드를 재정의하거나 Page_PreLoad 처리기를 만들어 처리 할 수 ​​있습니다.

Load - Load 이벤트가 페이지에 대해 발생 된 후 모든 자식 컨트롤에 대해 반복적으로 발생합니다. 컨트롤 트리의 컨트롤이 생성됩니다. 이 이벤트는 OnLoad 메서드를 재정의하거나 Page_Load 처리기를 만들어 처리 할 수 ​​있습니다.

LoadComplete -로드 프로세스가 완료되고 컨트롤 이벤트 핸들러가 실행되며 페이지 유효성 검사가 수행됩니다. 이 이벤트는 OnLoadComplete 메서드를 재정의하거나 Page_LoadComplete 처리기를 만드는 방법으로 처리 할 수 ​​있습니다.

PreRender - PreRender 이벤트는 출력이 렌더링되기 직전에 발생합니다. 이 이벤트를 처리함으로써 페이지와 컨트롤은 출력이 렌더링되기 전에 모든 업데이트를 수행 할 수 있습니다.

PreRenderComplete - PreRender 이벤트가 모든 하위 컨트롤에 대해 재귀 적으로 발생하므로이 이벤트는 렌더링 전 단계 완료를 보장합니다.

SaveStateComplete - 페이지의 제어 상태가 저장됩니다. 개인화, 제어 상태 및보기 상태 정보가 저장됩니다. HTML 마크 업이 생성됩니다. 이 단계는 Render 메서드를 재정의하거나 Page_Render 처리기를 만들어 처리 할 수 ​​있습니다.

UnLoad - UnLoad 단계는 페이지 수명주기의 마지막 단계입니다. 모든 컨트롤에 대해 UnLoad 이벤트를 재귀 적으로 발생시키고 마지막으로 페이지 자체에 대해 발생시킵니다. 최종 정리가 완료되고 데이터베이스 연결과 같은 모든 자원 및 참조가 해제됩니다. 이 이벤트는 OnUnLoad 메서드를 재정의하거나 Page_UnLoad 처리기를 만들어 처리 할 수 ​​있습니다.

코드 예제

using System;

namespace myProject
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        public string PageSteps = string.Empty;

        //Raised after the start stage is complete and before the initialization stage begins.
        protected void Page_PreInit(object sender, EventArgs e)
        {
            PageSteps += "1 - Page_PreInit<br>";

            //Access to page Controls not available in this step
            //Label1.Text = "Step 1";
        }

        //Raised after all controls have been initialized and any skin settings have been applied.
        //The Init event of individual controls occurs before the Init event of the page.
        protected void Page_Init(object sender, EventArgs e)
        {
            PageSteps += "2 - Page_Init<br>";

            Label1.Text = "Step 2";
        }

        //Raised at the end of the page's initialization stage.
        //Only one operation takes place between the Init and InitComplete events: tracking of view state changes is turned on.
        //View state tracking enables controls to persist any values that are programmatically added to the ViewState collection.
        //Until view state tracking is turned on, any values added to view state are lost across postbacks.
        //Controls typically turn on view state tracking immediately after they raise their Init event.
        protected void Page_InitComplete(object sender, EventArgs e)
        {
            PageSteps += "3 - Page_InitComplete<br>";

            Label1.Text = "Step 3";
        }

        //Raised after the page loads view state for itself and all controls, and after it processes postback data that is included with the Request instance.
        protected override void OnPreLoad(EventArgs e)
        {
            PageSteps += "4 - OnPreLoad<br>";

            Label1.Text = "Step 4";
        }

        //The Page object calls the OnLoad method on the Page object, and then recursively does the same for each child control until the page and all controls are loaded.
        //The Load event of individual controls occurs after the Load event of the page.
        protected void Page_Load(object sender, EventArgs e)
        {
            PageSteps += "5 - Page_Load<br>";

            Label1.Text = "Step 5";
        }

        //Use these events to handle specific control events, such as a Button control's Click event or a TextBox control's TextChanged event.
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            //Step only visible on PostBack
            PageSteps += "6 - btnSubmit_Click<br>";

            Label1.Text = "Step 6";
        }

        //Raised at the end of the event-handling stage.
        protected void Page_LoadComplete(object sender, EventArgs e)
        {
            PageSteps += "7 - Page_LoadComplete<br>";

            Label1.Text = "Step 7";
        }

        //Raised after the Page object has created all controls that are required in order to render the page, including child controls of composite controls.
        //(To do this, the Page object calls EnsureChildControls for each control and for the page.)
        protected override void OnPreRender(EventArgs e)
        {
            PageSteps += "8 - OnPreRender<br>";

            Label1.Text = "Step 8";
        }

        //Raised after each data bound control whose DataSourceID property is set calls its DataBind method.
        protected override void OnPreRenderComplete(EventArgs e)
        {
            PageSteps += "9 - OnPreRenderComplete<br>";

            Label1.Text = "Step 9";
        }


        //Raised after view state and control state have been saved for the page and for all controls.
        //Any changes to the page or controls at this point affect rendering, but the changes will not be retrieved on the next postback.
        protected override void OnSaveStateComplete(EventArgs e)
        {
            PageSteps += "10 - OnSaveStateComplete<br><hr><br>";

            Label1.Text = "Step 10";
        }

        // Render
        //This is not an event; instead, at this stage of processing, the Page object calls this method on each control.
        //All ASP.NET Web server controls have a Render method that writes out the control's markup to send to the browser.

        //Raised for each control and then for the page.
        //Controls use this event to do final cleanup for specific controls, such as closing control-specific database connections
        protected void Page_UnLoad(object sender, EventArgs e)
        {
            //This last PageSteps addition will not be visible on the page
            PageSteps += "11 - Page_UnLoad<br>";

            //Access to page Controls not available in this step
            //Label1.Text = "Step 11";      
        }
    }
}

.aspx 페이지에 다음 코드를 추가하여 Life Cycle의 단계를 시각화하십시오.

<b>Page Life Cycle Visualization:</b>
<br />
<%= PageSteps %>

여기에 이미지 설명을 입력하십시오.

추가 정보



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow