刚老大给我出了道题。
   Page这个基类里有 多少Page_开头的事件。执行顺序是如何。
   另外深层次的,每个事件,是做什么用的,为什么会这样执行。这里面用到了什么 设计模式。望广大C友踊跃发言。分不是问题。只要回答的好。我继续追加。高分送上。
小弟拜求!!!

解决方案 »

  1.   

    Page   执行中将按照如下顺序激活事件: Page.PreInit 
    Page.Init 
    Page.InitComplite 
    Page.PreLoad 
    Page.Load 
    Page.LoadComplete 
    Page.PreRender 
    Page.PreRenderComplete 
    //我先开个头,求解释
      

  2.   

    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生命周期
    另外深层次的,每个事件,是做什么用的,为什么会这样执行。这里面用到了什么 设计模式这个要看代码啊。
      

  3.   

    有这闲功夫为什么不去看MSDN呢...一个不看文档的Coder不可能成为程序员...
      

  4.   

    http://msdn.microsoft.com/en-us/library/ms178472.aspx#general_page_lifecycle_stages
      

  5.   

    Page.PreInit //页面初始化
    Page.Init //页面控件初始化
    Page.InitComplite ??请教高人
    Page.PreLoad //页面加载
    Page.Load //控件加载
    Page.LoadComplete --在所有回发数据和视图状态数据都加载到页以及页上的所有控件中后发生
    Page.PreRender //页面预备发送事件一般是最后执行的
    Page.PreRenderComplete 
      

  6.   

    反编译 system.web.dll ,查看里面的page类
      

  7.   

    1.page 执行中将按照如下顺序激活事件:page.preinit
    page.init
    page.initcomplite
    page.preload
    page.load
    page.loadcomplete
    page.prerender
    page.prerendercomplete 2.asp.net vs2005中如何在代码中添加page_loadcomplete事件 关键词:asp.net环境说明:windows server 2003,asp.net vs2005问题:asp.net vs2005中如何在代码中添加page_loadcomplete事件解决方法:asp.net vs2005中 page_load事件是自己双击设计就出来了,但是Page_LoadComplete事件需要手工添加,参数类似于Page_Load()的参数。具体如下: protected void Page_LoadComplete(object sender, EventArgs e) Page_Load Page_Init方法使用原理网页的生命周期列表:  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  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默认是第二种
      

  8.   

    你们老大是不是脑子进水了,
    Page这个基类里有 多少Page_开头的事件?一般人谁会去数啊,以后Page_开头的事件就不会增加了吗?
    每个事件,是做什么用的,为什么会这样执行?
    这里面用到了什么设计模式?天才啊!从那里找出来的问题?
      

  9.   

    你老大这个表述有点错误。不仅仅是Page,就是用户控件(包括母板页)等也有这些。
      

  10.   

    ASP.NET3.5网络开发详解--探索页面生命周期 Asp.Net--->Page生命周期详解 
      

  11.   

    你老大还是很负责的关键字: IHttpHandler、ASP.NET Page Life Cycle、Template Method