重写page 基类的方法

重写page 基类的方法
2009-07-31 11:16
1、继承Page,重写OnLoad方法(微软推荐,但不推荐页面基类)

protected   override   void   OnLoad(EventArgs   e)
{
      ......
}
2、继承Page,在构造函数中注册事件:
    this.Load   +=   new   EventHandler(   Page_Load   );
    然后写Page_Load方法。
  
3、推荐解决方案:利用HttpModule把代码挂到Page的Load事件上。  
//// <summary>
/// 控制aspx页面的HttpModule通用基类
/// </summary>
public abstract class PageModule : IHttpModule
{

    private HttpApplication _application;

    /**//// <summary>
    /// 销毁PageModule实例。
    /// </summary>
    public void Dispose()
    {
    }

    /**//// <summary>
    /// 实现IHttpModule,初始化PageModule
    /// </summary>
    /// <param name="context">HttpApplication实例</param>
    public void Init( HttpApplication context )
    {
      _application = context;

      //_application.PostMapRequestHandler += new EventHandler( OnPostMapRequestHandler );
      _application.PreRequestHandlerExecute += new EventHandler( OnPreRequestHandlerExecute );
      _application.PostRequestHandlerExecute += new EventHandler( OnPostRequestHandlerExecute );

    }


   
    private void OnPreRequestHandlerExecute( object sender, EventArgs e )
    {
      _page = Context.Handler as System.Web.UI.Page;

      if ( _page != null )
        OnPrePageExecute( sender, e );

    }

    /**//// <summary>
    /// 当执行页面处理程序之前发生
    /// </summary>
    /// <param name="sender">事件源</param>
    /// <param name="e">事件参数</param>
    protected virtual void OnPrePageExecute( object sender, EventArgs e )
    {

    }

   
    private void OnPostRequestHandlerExecute( object sender, EventArgs e )
    {
      if ( _page != null )
        OnPostPageExecute( sender, e );
    }

    /**//// <summary>
    /// 当执行页面处理程序执行完毕时发生
    /// </summary>
    /// <param name="sender">事件源</param>
    /// <param name="e">事件参数</param>
    protected virtual void OnPostPageExecute( object sender, EventArgs e )
    {

    }




    private System.Web.UI.Page _page;

    /**//// <summary>
    /// 获取当前请求的页面对象
    /// </summary>
    protected System.Web.UI.Page Page
    {
      get { return _page; }
    }

    /**//// <summary>
    /// 获取当前的请求的Http上下文信息
    /// </summary>
    protected HttpContext Context
    {
      get { return _application.Context; }
    }

    /**//// <summary>
    /// 获取模块所在的HttpApplication实例
    /// </summary>
    protected HttpApplication ApplicationInstanse
    {
      get { return _application; }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值