- 检测到有潜在危险的 Request.Form 值问题
- ASP.NET 2.0 绑定高级技巧
- 在线用户实体缓存解决方案
- StringBuilder在.Net中的用法说明
- saved from url=(0018)http://www.××××.com什么意思
- 什么是网站三要素
- 用jquery清除select中的所有option
- 三层结构中efcore中配置类属于哪一层
- 如何做好长尾关键词的一些方法
- DataDirectory是什么?
邮箱:
手机:15383239821
ASP.NET页面事件执行顺序
默认的aspx页面都是继承自System.Web.UI.Page,Page基类定义了很多需要预执行的事件,这些事件虽没有在aspx页面中显示的定义或提及,但它们仍然会以一定的顺序去执行,这些事件的执行顺序是:
1. OnPreInit
2. OnInit
3. OnInitComplete
4. OnPreLoad
5. Page_Load
6. OnLoad
7. OnLoadComplete
8. OnPreRender
9. OnPreRenderComplete
以上事件除了Page_Load 为aspx页面自己的事件外,其余的都是继承自基类Page。
当页面进行回发时,如点击按钮,以上事件都会重新执行一次,这时的执行顺序为:
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之后执行;
可以测试一下:
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++;
}
}
-
2010-07-20学习SEO,避免犯错
-
2010-12-09做外链时,应该注意nofollow 属性!
-
2011-04-01使用css、li、ul、div及js制作二级树形下拉菜单
-
2013-11-22移动控件介绍及详细使用方法:Web.Config代码
-
2019-11-15在C#中设置DateTime类型的变量值等于Null
-
2023-11-15MySQL 8.0 UUID
