Page_Load Page_Init方法使用原理 Page 添加 事件
来源:互联网 发布:淘宝不能使用图片搜索 编辑:程序博客网 时间:2024/05/26 09:57
网页的生命周期列表:
PreInit (2.0)
->初始化Theme,应用MasterPage和控件Skin
->Init
->InitComplete (2.0)
->If PostBack,创建子控件并加载控件/视图状态
->PreLoad (2.0)
->Load
->If PostBack,则触发服务器端事件
->LoadComplete (2.0)
->If not PostBack,则创建子控件
->PreRender
->PreRenderComplete (2.0)
->保存控件/视图状态
->SaveStateComplete (2.0)
->Render
->Unload
需要注意的是上图中标注(2.0)的事件即ASP.NET 2.0中新增的事件都仅仅是Page类中可以使用,并不是像其他事件一样可以在控件中使用。
ASP.NET 2.0中可以通过启用(默认值为True)AutoEventWireUp为网页事件创建事件处理程序,并使用隐式为事件处理程序注册的方法名。
以下是VS2005隐式为各个事件添加关联的方法:
事件-> 方法名
Page.PreInit -> Page_PreInit
Control.Init -> Page_Init
Page.InitComplete -> Page_InitComplete
Page.PreLoad -> Page_PreLoad
Control.Load -> Page_Load
Page.LoadComplete -> Page_LoadComplete
Control.PreRender -> Page_PreRender
执行aspx页面中的服务端代码
Control.DataBinding -> Page_DataBind
Page.PreRenderComplete -> Page_PreRenderComplete
Page.SaveStateComplete -> Page_SaveStateComplete
Control.Unload -> Page_Unload
TemplateControl.Error-> Page_Error
TemplateControl.AbortTransation -> Page_AbortTransation
TemplateControl.AbortTransation -> OnTransationAbort
TemplateControl.CommitTransation -> Page_CommitTransation
TemplateControl.CommitTransation -> OnTransationCommit
Page基类会在请求的开头阶段调用基类TemplateControl的HookUpAutomaticHandlers方法。该方法遍历上表中所示的方法名,并使用反射在程序员的类中查找具有相同名称和合适特征标的方法。如果找到合适的方法,则创建一个类型合适的委托,并使用该方法初始化它,并将其加入委托列表,该委托在相应事件发生时候将被触发。
这些事件都是由基类Page的一个虚方法或者Page类从基类Control继承的虚方法触发。所以可以有三种方法注册这些事件:(以Load事件为例)
1、显式的将一个委托和一个事件关联起来(通常都是在网页的Init处理程序中)
2、编写一个名为Page_Load的方法,并使其特征标和事件相同
3、重写Override虚方法Onload
这个三个方法中重写Override比较快一点点,但是VS2005默认是第二种
------------------------------
public partial class _Default : System.Web.UI.Page
{
public _Default()
{
this.Init += new EventHandler(_Default_Init);
}
在 += 后边按 Tab 键就可以了。
-------------------------
在页面设计器右键,选择“查看组件设计器”,弹出“***.aspx.cs[设计]”这样的页面,现在再看“属性”那里,可以点击闪电符号看到Page的事件了。
- Page_Load Page_Init方法使用原理 Page 添加 事件
- Page_Load Page_Init方法使用原理 Page 添加 事件
- Page_Load Page_Init方法使用原理
- asp.net 2.0生命周期 以及Page_Load Page_Init方法使用原理
- asp.net 2.0生命周期 以及Page_Load Page_Init方法使用原理
- Page_Init和Page_Load事件的区别
- 添加Page_Init事件
- Page_load事件 Page.IsPostBack属性
- Page_Init()和page_load()区别
- page_Load和page_Init的区别
- page_load 与page_init 的区别
- page_Load和page_Init的区别
- page_load 与page_init 的区别
- page_load 与page_init 的区别
- page_load 与page_init 的区别
- Page_Init和Page_Load的区别
- page_init与page_load有什么区别
- Page_Load 事件
- android 登陆右上角 的关闭按钮的使用方法
- 大小关系
- Cocos2dx3.0 疑难解答系列 (一) 代码里对Layer监听失效,此Layer层中有儿子layout加载了从cocostudio导出的ui层。
- 使用Xcode 5创建自己的Framework
- Tsar开源:淘宝内部大量使用的系统监控工具
- Page_Load Page_Init方法使用原理 Page 添加 事件
- Spring dao框架——jdbc模板批量操作
- 1/50 《Programming in Objective-C》
- main函数同时打印if和else中的内容
- CSting 函数大全
- Graphviz的使用及中文乱码问题
- 给大家推荐一款高大上的代码高亮插件(sublime,github风格)——highlight.js
- Spring 查询中怎样使用RowMapper
- 文件上传控件plupload的runtimes问题整理(html4、silverlight)