服務(wù)熱線
153 8323 9821
默認(rèn)的aspx頁(yè)面都是繼承自System.Web.UI.Page,Page基類定義了很多需要預(yù)執(zhí)行的事件,這些事件雖沒有在aspx頁(yè)面中顯示的定義或提及,但它們?nèi)匀粫?huì)以一定的順序去執(zhí)行,這些事件的執(zhí)行順序是:
1. OnPreInit
2. OnInit
3. OnInitComplete
4. OnPreLoad
5. Page_Load
6. OnLoad
7. OnLoadComplete
8. OnPreRender
9. OnPreRenderComplete
以上事件除了Page_Load 為aspx頁(yè)面自己的事件外,其余的都是繼承自基類Page。
當(dāng)頁(yè)面進(jìn)行回發(fā)時(shí),如點(diǎn)擊按鈕,以上事件都會(huì)重新執(zhí)行一次,這時(shí)的執(zhí)行順序?yàn)椋?/p>
1. OnPreInit
2. OnInit
3. OnInitComplete
4. OnPreLoad
5. Page_Load
6. OnLoad
7. Button_Click
8. OnLoadComplete
9. OnPreRender
10. OnPreRenderComplete
可以看到,Button_Click事件位于OnLoad之后執(zhí)行;
可以測(cè)試一下:
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 OnLoad(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 OnLoadComplete(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++;
}
}