首页 > 代码库 > ASP.NET Page执行顺序如:OnPreInit()、OnInit()

ASP.NET Page执行顺序如:OnPreInit()、OnInit()

当页面进行回发时,如点击按钮,以上事件都会重新执行一次,这时的执行顺序为:
1. OnPreInit
2. OnInit
3. OnInitComplete
4. OnPreLoad
5. Page_Load
6. onl oad
7. Button_Click
8. onl oadComplete
9. OnPreRender
可以看到,Button_Click事件位于OnLoad之后执行,可以测试一下:

public partial class TestControls : System.Web.UI.Page{        static int count = 0;        protected void Page_Load(object sender, EventArgs e)        {            Response.Write(count+ "Page_Load <br />");            count++;        }        protected override void OnPreInit(EventArgs e)        {            base.OnPreInit(e);            Response.Write(count + "OnPreInit <br />");            count++;        }        protected override void OnInit(EventArgs e)        {            base.OnInit(e);            Response.Write(count + "OnInit <br />");            count++;        }        protected override void onl oad(EventArgs e)        {            base.OnLoad(e);            Response.Write(count + "OnLoad <br />");            count++;        }        protected override void OnPreLoad(EventArgs e)        {            base.OnPreLoad(e);            Response.Write(count + "OnPreLoad <br />");            count++;        }        protected override void onl oadComplete(EventArgs e)        {            base.OnLoadComplete(e);            Response.Write(count + "OnLoadComplete <br />");            count++;        }        protected override void OnInitComplete(EventArgs e)        {            base.OnInitComplete(e);            Response.Write(count + "OnInitComplete <br />");            count++;        }       protected override void OnUnload(EventArgs e)        {            base.OnUnload(e);        }        protected override void OnDataBinding(EventArgs e)        {            base.OnDataBinding(e);            Response.Write(count + "OnDataBinding <br />");            count++;        }        protected override void OnPreRender(EventArgs e)        {            base.OnPreRender(e);            Response.Write(count + "OnPreRender <br />");            count++;        }        protected void btnGraphics_Click(object sender, EventArgs e)        {            //Bitmap bmp = new Bitmap(10, 10);            //Graphics g = Graphics.FromImage(bmp);            Response.Write(count + "btnGraphics_Click <br />");            count++;        }}

 

ASP.NET Page执行顺序如:OnPreInit()、OnInit()