ASP.NET 页面生命周期

    技术2025-06-15  14

    独立页面生命周期事件顺序

    protected void Page_PreInit(object sender, EventArgs e)         {             Response.Write("Page_PreInit<br/>");         }

            protected void Page_Init(object sender, EventArgs e)         {             Response.Write("Page_Init<br/>");         }

            protected void Page_InitComplete(object sender, EventArgs e)         {             Response.Write("Page_InitComplete<br/>");         }

            protected void Page_PreLoad(object sender, EventArgs e)         {             Response.Write("Page_PreLoad<br/>");         }

            protected void Page_Load(object sender, EventArgs e)         {             Response.Write("Page_Load<br/>");         }

            protected void Page_LoadComplete(object sender, EventArgs e)         {             Response.Write("Page_LoadComplete<br/>");         }

            protected void Page_PreRender(object sender, EventArgs e)         {             Response.Write("Page_PreRender<br/>");         }

            protected void Page_PreRenderComplete(object sender, EventArgs e)         {             Response.Write("Page_PreRenderComplete<br/>");         }

            protected void Page_SaveStateComplete(object sender, EventArgs e)         {             Response.Write("Page_SaveStateComplete<br/>");         }

            protected void Page_Unload(object sender, EventArgs e)         {             //页面卸载事件  这里不能用Response.Write (因为页面已经处于被卸载状态)         }

            protected void Button1_Click(object sender, EventArgs e)         {             Response.Write("Button事件触发!<br/>");         }

     

     

    首次加载该页面输出结果:

    Page_PreInit Page_Init Page_InitComplete Page_PreLoad Page_Load Page_LoadComplete Page_PreRender Page_PreRenderComplete Page_SaveStateComplete

    点击Button1输出结果:

    Page_PreInit Page_Init Page_InitComplete Page_PreLoad Page_Load Button事件触发! Page_LoadComplete Page_PreRender Page_PreRenderComplete Page_SaveStateComplete

    具有Master页的生命周期事件顺序

    把上面代码复制一份到Site.Master页和内容子页ContentPage.aspx,再次执行ContentPage.aspx

     

    首次加载ContentPage.aspx页面输出结果:

     

    Page_PreInit MasterPage_Init Page_Init Page_InitComplete Page_PreLoad Page_Load MasterPage_Load Page_LoadComplete Page_PreRender MasterPage_PreRender Page_PreRenderComplete Page_SaveStateComplete

     

    点击Button1按钮后输出结果:

     

    Page_PreInit MasterPage_Init Page_Init Page_InitComplete Page_PreLoad Page_Load MasterPage_Load

    Button事件触发! Page_LoadComplete Page_PreRender MasterPage_PreRender Page_PreRenderComplete Page_SaveStateComplete

     

    点击母版页Site.Master中的Button按钮

    Page_PreInit MasterPage_Init Page_Init Page_InitComplete Page_PreLoad Page_Load MasterPage_Load

    MasterPage-Button事件触发! Page_LoadComplete Page_PreRender MasterPage_PreRender Page_PreRenderComplete Page_SaveStateComplete

     

    以上我总结出:

     

    具有Master页的内容页执行时,该内容页的母版页只执行MasterPage_Init、MasterPage_Load、MasterPage_PreRender  和母版页的其他触发事件,值得说明的是Page_Unload(页面卸载事件),母版页先执行Page_Unload 事件然后内容页再执行Page_Unload事件。

    最新回复(0)