IBasePage.cs文件
/// <summary> /// 用於頁面或用戶控件 /// </summary> public interface IBasePage { /// <summary> /// 數據緩存類 /// </summary> DbCache CacheHelp { get; } /// <summary> /// 頁面視圖,用於頁面級別訪問,模仿MVC /// </summary> ViewDataDict ViewData { get; } /// <summary> /// 獲取DataTable.Rows,此方法不會出錯異常 /// </summary> /// <param name="pName">數據名稱</param> /// <returns></returns> DataRowCollection ViewDataRows(string pName); /// <summary> /// 1:true否則false /// </summary> /// <param name="pName"></param> /// <returns></returns> bool IsViewData(string pName); /// <summary> /// URL參數類 /// </summary> UrlQuery UQ { get; } /// <summary> /// 頁面搜索關鍵詞,搜索關鍵詞是最基本功能,故在這里放一個字段 /// </summary> string searchStr { get; set; } /// <summary> /// 權限使用次數 /// </summary> int UserFunCount { get; set; } /// <summary> /// 數據庫鏈接次數 /// </summary> int DbCount { get; set; } /// <summary> /// 用與判斷增加style,js等是否已重復添加 /// </summary> /// <param name="pName"></param> /// <returns></returns> TempListHandler TempList { get; } }
BasePage.cs文件
/// <summary> /// 整站頁面基礎類 /// </summary> public class BasePage : System.Web.UI.Page, IBasePage { private static readonly DataRowCollection EmptyRows = new DataTable().Rows; private DbCache cacheHelp; private ViewDataDict viewData; private ViewDataDict viewDataM; private int userFunCount = 0;//權限使用次數 private int dbCount = 0;//數據庫連接次數 private TempListHandler tempList; protected bool IsOpenXingNengTongji = true; #region 搜索關鍵詞 //private string _searchStr; public string searchStr { get { //if (this._searchStr == null) //{ // return string.Empty; //} return ViewData["keyword"].ToString(); } set { //this._searchStr = value; ViewData["keyword"] = value; } } #endregion #region 將數據保存在頁面控件里 ViewDataPage /// <summary> /// 將數據保存在頁面控件里 /// </summary> public string ViewDataPage { get { return Req.Form("__viewdatapage"); } set { this.ClientScript.RegisterHiddenField("__viewdatapage", value); //this.ClientScript.RegisterClientScriptBlock(this.GetType(), "__urlreferrer", "<input id=\"__urlreferrer\" name=\"__urlreferrer\" type=\"hidden\" value=\"" + value + "\" />"); } } #endregion public BasePage() { cacheHelp = new DbCache(); viewData = new ViewDataDict(); viewDataM = new ViewDataDict("model_"); tempList = new TempListHandler(); } private DateTime __time1; private DateTime __time2; private static int __i = 0; #region 跟根URL重寫獲取參數 /// <summary> /// 跟根URL重寫獲取參數 /// </summary> private UrlQuery _UQ; protected override void OnInit(EventArgs e) { _UQ = new UrlQuery(true); __time1 = DateTime.Now; base.OnInit(e); } protected override void OnPreInit(EventArgs e) { //"OnPreInit".WriteLine(); base.OnPreInit(e); } #endregion #region 基本信息統計 protected override void Render(System.Web.UI.HtmlTextWriter writer) { //"Render".WriteLine(); base.Render(writer); __i++; __time2 = DateTime.Now; TimeSpan ts = __time2 - __time1; if (IsOpenXingNengTongji) Response.Write(@"<div style=""text-align:center;color:#ccc"">Number:" + __i + ", Time:" + ts.TotalMilliseconds + "ms, DB=" + this.dbCount + ",fun=" + this.userFunCount + "</div>"); } #endregion protected override void OnUnload(EventArgs e) { //"OnUnload".WriteLine(); base.OnUnload(e); } #region 將搜索到的結果為醒目顯示 /// <summary> /// 將搜索到的結果為醒目顯示 /// </summary> /// <param name="str"></param> /// <returns></returns> public string ReplaceSearchText(object str) { if (searchStr == null || searchStr.Length == 0) return str.ToString(); //return str.ToString().Replace(searchStr, "<strong style=\"color:#F00\">" + searchStr + "</strong>"); return Regex.Replace(str.ToString(), Regex.Escape(searchStr), "<strong style=\"color:#F00\">" + searchStr + "</strong>", RegexOptions.IgnoreCase); } #endregion #region IBasePage 成員 /// <summary> /// 數據緩存類 /// </summary> public DbCache CacheHelp { get { return this.cacheHelp; } } /// <summary> /// 頁面視圖,用於頁面級別訪問,模仿MVC /// </summary> public ViewDataDict ViewData { get { return this.viewData; } } /// <summary> /// 頁面視圖(Model),用於頁面級別訪問,模仿MVC /// </summary> public ViewDataDict ViewDataM { get { return this.viewDataM; } } /// <summary> /// 獲取DataTable.Rows,此方法不會出錯異常 /// </summary> /// <param name="pName"></param> /// <returns></returns> public DataRowCollection ViewDataRows(string pName) { DataTable dt = ViewData[pName] as DataTable; if (dt == null) { return EmptyRows; } return dt.Rows; } public bool IsViewData(string pName) { return viewData[pName].ToString() == "1"; } public UrlQuery UQ { get { return this._UQ; } } ///// <summary> ///// 獲取系統配置 ///// </summary> ///// <param name="key"></param> ///// <returns></returns> //public string SysConfig(string key) //{ // return WConfigBLL.GetValue(key).ToString(); //} public TempListHandler TempList { get { return this.tempList; } } public int UserFunCount { get { return this.userFunCount; } set { this.userFunCount = value; } } public int DbCount { get { return this.dbCount; } set { this.dbCount = value; } } #endregion #region ITrace 成員 //private int dbConnectionCount; ///// <summary> ///// 數據庫連接次數 ///// </summary> //public int DbConnectionCount //{ // get // { // return this.dbConnectionCount; // } // set // { // dbConnectionCount = value; // } //} #endregion #region 獲取或設置提交后返回的路徑,若未指定,則是當前url /// <summary> /// 獲取或設置提交后返回的路徑,若未指定,則是當前url /// </summary> public string UrlReferrer { get { string s = Req.Form("___urlreferrer"); if (s.Length == 0) { s = ViewData["___urlreferrer"].ToString(); } if (s.Length == 0) { s = Request.Url.ToString(); } return s; } set { ViewData["___urlreferrer"] = value; this.ClientScript.RegisterHiddenField("___urlreferrer", value);\" type=\"hidden\" value=\"" + value + "\" />"); } } #endregion }
