在做web项目中经常每个页面都要用到相同的处理过程,样式,还有方法.这个时候每个页面都写一样的代码有点烦琐,所以一般情况下我们就会把这些基本相同总结出来放到一个基类中,每个页面只要继承它就可以了..以下是我的一个基类PageBase的代码.

/**//********************************************************************
created: 2007/01/17
filename: \App_Code\PageBase.cs
file path: \App_Code
file base: PageBase
author: chengang
information: 页面的基类
*********************************************************************/


using System;
using System.Web;
using System.Data;
using System.Web.UI.WebControls;
using System.Text;
using System.Configuration;
using System.Drawing;
using System.Data.SqlClient;
using PTSFRAME.UIControl;
using System.Web.UI.HtmlControls;

namespace PTSFRAME


{

/**//// <summary>
/// 页面的基类
/// </summary>
public class PageBase : System.Web.UI.Page

{

私有变量#region 私有变量

/**//// <summary>
/// 公用调试结果
/// </summary>
protected int iResult = 0;

/**//// <summary>
/// 页面开始执行时间
/// </summary>
private DateTime _StartTime;
public PTSFRAME.BaseException Exc = new PTSFRAME.BaseException();
#endregion

protected HtmlLink css;
public PageBase()

{
//记录页面的开始执行时间
_StartTime = DateTime.Now;
}


属性#region 属性

/**//// <summary>
/// 应用程序路径 如:/EME_OA
/// </summary>
public string ApplicationPath

{
get

{
return Request.ApplicationPath.ToString();
}
}
public string UserHostIP

{
get

{
return HttpContext.Current.Request.UserHostAddress;
}
}

/**//// <summary>
/// 样式css文件加载,
/// </summary>
public string CssHref

{
get

{
return css.Attributes["href"];
}
set

{
css.Attributes["href"] = value;
}
}



/**//// <summary>
/// 登录用户
/// </summary>
public Mlottery.Components.Entity.Sys_UserEnt Login_User

{
get

{
return (Mlottery.Components.Entity.Sys_UserEnt)Session["Login_us"];
}
}

#endregion



/**//// <summary>
/// 根据条件判断返回页面执行时间
/// </summary>
/// <returns></returns>
public string PageLoadTime()

{
TimeSpan usedTime = DateTime.Now - this._StartTime;
return ("页面执行时间:" + usedTime.TotalSeconds + "秒");
}



重载方法#region 重载方法

/**//// <summary>
/// 重载Load方法
/// </summary>
/// <param name="e"></param>
protected override void OnLoad(EventArgs e)

{
//============================================================================
//清除缓存
//============================================================================
Response.Cache.SetNoStore();
if (!PublicClass.LoadSession(Page))
return;
if (!this.IsPostBack)

{
LoadCss.LoadPageCSS(Page);

}
base.OnLoad(e);
}


/**//// <summary>
/// 重载OnPreRender方法
/// </summary>
/// <param name="e"></param>
protected override void OnPreRender(EventArgs e)

{
base.OnPreRender(e);
Page.ClientScript.RegisterClientScriptInclude("windowJS", ApplicationPath + "/js/window.js");
}

/**//// <summary>
/// 初始化
/// </summary>
/// <param name="e"></param>
protected override void OnInit(EventArgs e)

{
//动态加载css文件
css = new HtmlLink();
css.Attributes.Add("type", "text/css");
css.Attributes.Add("rel", "stylesheet");
css.Attributes.Add("href", ApplicationPath + "/Css/style.css");
this.Header.Controls.Add(css);
base.OnInit(e);
ViewStateUserKey = Session.SessionID;
}

/**//// <summary>
/// 重载错误处理
/// </summary>
/// <param name="e"></param>
protected override void OnError(EventArgs e)

{
//Response.Write("<script>window.opener = null;parent.location.href='" + ApplicationPath + "/ErrorPage.aspx';</script>");
Server.Transfer(ApplicationPath + "/ErrorPage.aspx", false);
base.OnError(e);
}


/**//// <summary>
/// 卸载页面,释放CONN
/// </summary>
/// <param name="e"></param>
protected override void OnUnload(EventArgs e)

{
this.Exc = null;
}

#endregion

}

}
