SAL

  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

Load与onload的区别

Posted on 2008-10-23 14:16  SAL  阅读(2214)  评论(0编辑  收藏  举报

以下是我的理解:  
   
  Page对象有一Load事件,应该是如下定义:  
          protected   event   EventHandler   Load;  
  此事件继承到页面  
   
  OnLoad是Page的一个方法,应该是如下定义:  
          protected   virtual   void   OnLoad(EventArgs   e)  
  此方法唤起Load事件,方法内大约包含:  
          if(Load)Load(this,e);  
  此方法也继承到页面,甚至被重写  
   
  Page_Load只是页面类的一个方法,本来它与页面Load事件毫无关系  
  当Page指令AutoEventWireup="true"的时候,页面类会按规律分析方法并加入对应事件。  
  规律是:方法名以Page_为前缀的与后缀对应的事件(Load)对应,例如还有:Page_Init等  
  对应过程即:  
          Load   +=   Page_Load;  
  这样在Page生命周期发执行OnLoad的时候,就会唤起Load事件,并执行用户定义的Page_Load方法

 

网上收集:

负责通知事件的登记对象.就是说Load事件可能需要很多对象知道,只要对象里登记了这个事件,那么调用下面的方法时,就会通知所有登记了的对象.  
  protected   override   void   OnLoad(EventArgs   e){}  
   
  侦听事件的方法.这个是需要登记的对象内的处理方法.OnLoad被调用,就会通知下面方法所在的对象.  
  private   void   Page_Load(object   sender,   System.EventArgs   e){}   
    
  可以参考MS社的<<Applied   Microsoft   .NET   Framework   Programming>>   By   Jeffery   Richter.