집 >백엔드 개발 >C#.Net 튜토리얼 >Asp.NET 페이지 이벤트가 로드되는 순서는 무엇입니까?
이 기사에서는 주로 Asp.NET 페이지의 이벤트 로딩 순서를 소개합니다. 이 기사에서는 지침을 따르는 모든 사람을 위한 특정 참조 및 학습 가치가 있습니다. 아래에서 함께 배워봅시다.
이 기사에서는 주로 Asp.NET 페이지 이벤트의 로딩 순서에 대한 관련 콘텐츠를 소개하고 참조 및 학습을 위해 공유합니다. 더 이상 고민하지 말고 자세한 소개를 살펴보겠습니다.
ASP. 레이아웃 페이지 및 콘텐츠 페이지의 NET Mother 이벤트
우리는 마스터 페이지와 콘텐츠 페이지 모두 컨트롤에 대한 이벤트 처리기를 포함할 수 있다는 것을 알고 있습니다. 컨트롤의 경우 콘텐츠 페이지의 컨트롤은 콘텐츠 페이지에서 이벤트를 발생시키고, 마스터 페이지의 컨트롤은 마스터 페이지에서 이벤트를 발생시킵니다. 컨트롤 이벤트는 콘텐츠 페이지에서 마스터 페이지로 전송되지 않으며 마스터 페이지 컨트롤의 이벤트는 콘텐츠 페이지에서 처리할 수 없으며 자체 이벤트 내에서만 처리됩니다.
다음은 마스터 페이지(Master)와 콘텐츠 페이지(ContentPage)가 병합된 후의 이벤트 순서입니다.
Master页面控件 Init 事件。 ContentPage页面控件 Init 事件。 Master页 Init 事件。 ContentPage页 Init 事件。 ContentPage页 Load 事件。 Master页 Load 事件。 ContentPage页面控件 Load 事件。 ContentPage页面 PreRender 事件。 Master页面 PreRender 事件。 Master页面控件 PreRender 事件。 ContentPage页面控件 PreRender 事件。
마스터 페이지와 콘텐츠 페이지의 이벤트 순서는 페이지에 중요하지 않습니다. 개발자. 그러나 특정 이벤트의 가용성에 따라 달라지는 이벤트 처리기를 만드는 경우 마스터 페이지와 콘텐츠 페이지의 이벤트 순서를 이해하는 것이 도움이 됩니다.
Asp.Net
1. 단일 페이지가 실행되면 이벤트는 다음 순서로 활성화됩니다.
Page.PreInit Page.Init Page.InitComplite Page.PreLoad Page.Load Page.LoadComplete Page.PreRender Page.PreRenderComplete
2. BasePage:System.Web.UI.Page
등의 페이지에서 BasePage에 로그인 여부, 권한 유무 등 확인 기능이 추가되었으며, 다른 페이지는 BasePage에서 상속받으면 BasePage와 최종 페이지의 이벤트 활성화 순서는 다음과 같습니다. :
BasePage.PreInit Page.PreInit BasePage.Init Page.Init BasePage.InitComplite Page.InitComplite BasePage.PreLoad Page.PreLoad BasePage.Load Page.Load BasePage.LoadComplete Page.LoadComplete BasePage.PreRender Page.PreRender BasePage.PreRenderComplete Page.PreRenderComplete
3. MasterPage를 사용하면 MasterPage의 이벤트와 ContentPage의 이벤트가 다음 순서로 활성화됩니다.
ContentPage.PreInit Master.Init ContentPage.Init ContentPage.InitComplite ContentPage.PreLoad ContentPage.Load Master.Load ContentPage.LoadComplete ContentPage.PreRender Master.PreRender ContentPage.PreRenderComplete
Master에는 PreInit 이벤트가 없다는 점에 유의하세요. .
4. ContentPage가 BasePage를 상속하는 경우 각 이벤트의 실행 순서는 다음과 같습니다.
BasePage.PreInit ContentPage.PreInit Master.Init BasePage.Init ContentPage.Init BasePage.InitComplite ContentPage.InitComplite BasePage.PreLoad ContentPage.PreLoad BasePage.Load ContentPage.Load Master.Load BasePage.LoadComplete ContentPage.LoadComplete BasePage.PreRender ContentPage.PreRender Master.PreRender BasePage.PreRenderComplete ContentPage.PreRenderComplete
기억하세요: 상속된 페이지를 먼저 로드한 다음 상속된 페이지에 상속이 있으면 자체적으로 로드하세요. 먼저 상속 페이지에 대한 상속을 로드하세요.
이벤트 핸들러 이름 | 발생 시간 |
Page_Init | Web Form의 뷰 상태에 서버 컨트롤을 로드하고 초기화합니다. 이는 양식 수명 주기의 첫 번째 단계입니다. |
Page_Load | 는 페이지 개체에 서버 컨트롤을 로드합니다. 이때 뷰 상태 정보를 확인할 수 있으므로 여기서 코드를 사용하여 공간 설정을 변경하거나 페이지에 텍스트를 표시할 수 있습니다. |
Page_PreRender | 응용 프로그램이 페이지를 렌더링하려고 합니다 |
Page_Unload |
페이지가 메모리에서 언로드되었습니다 |
Page_Error | 처리되지 않은 예외가 발생했습니다 |
Page_AbortTransaction |
트랜잭션이 종료됨 |
Page_CommitTransaction |
트랜잭션 허용됨 |
Page_DataBinding | Page_CommitTransaction 서버 공간과 데이터 소스가 함께 번들로 제공됩니다. |
Page_Disposed |
페이지 개체가 메모리에서 해제됩니다. 이것은 페이지 개체의 수명 주기 중 마지막 이벤트입니다 |
Init, Load, PreRender 이벤트 실행 순서:
1) 컨트롤의 Init 이벤트
2) 컨트롤이 위치한 페이지의 Init 이벤트
3) 컨트롤이 위치한 페이지의 이벤트 로드
4) 컨트롤 로드 이벤트
5) 컨트롤이 위치한 페이지의 PreRender 이벤트
6) 컨트롤의 PreRender 이벤트
개인 연구에서 얻은 경험: (다음 두 가지 점은 다음과 같습니다. 자체 제작 페이지를 구축하고 관련 이벤트를 다시 작성하여 확인)
1. Init 이벤트는 가장 안쪽 컨트롤(예: 사용자 컨트롤)에서 가장 바깥쪽 컨트롤(페이지)로 발생하며 Load 및 PreRender와 같은 기타 이벤트도 발생합니다. 가장 바깥쪽 컨트롤에서 가장 안쪽 컨트롤로 올라갑니다.
2. 컨트롤 간 동일한 이벤트의 실행 순서는 페이지에서 컨트롤의 위치에 따라 왼쪽에서 오른쪽, 위에서 아래입니다.
참고:
1. 사용자 컨트롤도 페이지의 컨트롤로 간주됩니다.
2. 사용자 컨트롤을 별도의 특수 페이지로 봅니다. 동일한 규칙을 준수하십시오.
3. 클라이언트 프로그램(JavaScript 등)에서 클라이언트 Body 객체의 onload 이벤트를 사용하는 경우, 이 클라이언트 이벤트는 마지막에 실행된다는 점, 즉 서버 측의 모든 이벤트가 완료된 후에 실행된다는 점에 유의하시기 바랍니다. 처형되었습니다.
4. Master 및 사용자 정의 컨트롤에는 PreInit 및 OnComplete 이벤트가 없습니다. Master 자체는 사용자 컨트롤 usercontrol이고, usercontrol은 TemplateControl을 상속하며, TemplateControl은 Control에서 다시 쓸 수 있는 이벤트를 살펴보겠습니다. ) , 공식 문서(https://referencesource.microsoft.com/#System.Web/UI/Control.cs,87dbac93d9749fa2)를 볼 수도 있습니다.
위 내용은 Asp.NET 페이지 이벤트가 로드되는 순서는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!