欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# Page用于各頁面繼承功能實例

 更新時間:2014年10月13日 17:04:15   投稿:shichen2014  
這篇文章主要介紹了C# Page用于各頁面繼承功能實例,包含了常見的頁面視圖、數(shù)據(jù)緩存、數(shù)據(jù)庫操作等技巧,需要的朋友可以參考下

本文實例講述了C# Page用于各頁面繼承功能的實現(xiàn)方法。分享給大家供大家參考。具體方法如下:

IBasePage.cs文件如下:

復制代碼 代碼如下:
/// <summary>
/// 用于頁面或用戶控件
/// </summary>
public interface IBasePage
{
        /// <summary>
        /// 數(shù)據(jù)緩存類
        /// </summary>
        DbCache CacheHelp { get; }

        /// <summary>
        /// 頁面視圖,用于頁面級別訪問,模仿MVC
        /// </summary>
        ViewDataDict ViewData { get; }

        /// <summary>
        /// 獲取DataTable.Rows,此方法不會出錯異常
        /// </summary>
        /// <param name="pName">數(shù)據(jù)名稱</param>
        /// <returns></returns>
        DataRowCollection ViewDataRows(string pName);

        /// <summary>
        /// 1:true否則false
        /// </summary>
        /// <param name="pName"></param>
        /// <returns></returns>
        bool IsViewData(string pName);

        /// <summary>
        /// URL參數(shù)類
        /// </summary>
        UrlQuery UQ { get; }

        /// <summary>
        /// 頁面搜索關(guān)鍵詞,搜索關(guān)鍵詞是最基本功能,故在這里放一個字段
        /// </summary>
        string searchStr { get; set; }

        /// <summary>
        /// 權(quán)限使用次數(shù)
        /// </summary>
        int UserFunCount { get; set; }

        /// <summary>
        /// 數(shù)據(jù)庫鏈接次數(shù)
        /// </summary>
        int DbCount { get; set; }

        /// <summary>
        /// 用與判斷增加style,js等是否已重復添加
        /// </summary>
        /// <param name="pName"></param>
        /// <returns></returns>
        TempListHandler TempList { get; }
}

BasePage.cs文件如下:

復制代碼 代碼如下:
/// <summary>
/// 整站頁面基礎(chǔ)類
/// </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;//權(quán)限使用次數(shù)
        private int dbCount = 0;//數(shù)據(jù)庫連接次數(shù)

        private TempListHandler tempList;

        protected bool IsOpenXingNengTongji = true;

        #region 搜索關(guān)鍵詞
        //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 將數(shù)據(jù)保存在頁面控件里 ViewDataPage
        /// <summary>
        /// 將數(shù)據(jù)保存在頁面控件里
        /// </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重寫獲取參數(shù)
        /// <summary>
        /// 跟根URL重寫獲取參數(shù)
        /// </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 基本信息統(tǒng)計
        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 將搜索到的結(jié)果為醒目顯示
        /// <summary>
        /// 將搜索到的結(jié)果為醒目顯示
        /// </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>
        /// 數(shù)據(jù)緩存類
        /// </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>
        ///// 獲取系統(tǒng)配置
        ///// </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>
        ///// 數(shù)據(jù)庫連接次數(shù)
        ///// </summary>
        //public int DbConnectionCount
        //{
        //    get
        //    {
        //        return this.dbConnectionCount;
        //    }
        //    set
        //    {
        //        dbConnectionCount = value;
        //    }
        //}

        #endregion

        #region 獲取或設(shè)置提交后返回的路徑,若未指定,則是當前url
        /// <summary>
        /// 獲取或設(shè)置提交后返回的路徑,若未指定,則是當前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
}

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • C#實現(xiàn)SQL批量插入數(shù)據(jù)到表的方法

    C#實現(xiàn)SQL批量插入數(shù)據(jù)到表的方法

    這篇文章主要介紹了C#實現(xiàn)SQL批量插入數(shù)據(jù)到表的方法,涉及C#批量操作SQL的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • C#獲取變更過的DataTable記錄的實現(xiàn)方法

    C#獲取變更過的DataTable記錄的實現(xiàn)方法

    這篇文章主要介紹了C#獲取變更過的DataTable記錄的實現(xiàn)方法,對初學者很有學習借鑒價值,需要的朋友可以參考下
    2014-08-08
  • C#中sizeof的用法實例分析

    C#中sizeof的用法實例分析

    這篇文章主要介紹了C#中sizeof的用法,包括了常見的用法及注釋事項,需要的朋友可以參考下
    2014-09-09
  • C#實現(xiàn)從位圖到布隆過濾器的方法

    C#實現(xiàn)從位圖到布隆過濾器的方法

    布隆過濾器(Bloom filter)是一種特殊的 Hash Table,能夠以較小的存儲空間較快地判斷出數(shù)據(jù)是否存在。常用于允許一定誤判率的數(shù)據(jù)過濾及防止緩存擊穿及等場景,本文將以 C# 語言來實現(xiàn)一個簡單的布隆過濾器,為簡化說明,設(shè)計得很簡單,需要的朋友可以參考下
    2022-06-06
  • C#中前臺線程和后臺線程的區(qū)別與聯(lián)系

    C#中前臺線程和后臺線程的區(qū)別與聯(lián)系

    這篇文章主要介紹了C#中前臺線程和后臺線程的區(qū)別與聯(lián)系,本文先講解了它們的區(qū)別,然后給出了一個例子來驗證這些區(qū)別,需要的朋友可以參考下
    2015-06-06
  • C#如何實現(xiàn)調(diào)取釘釘考勤接口的功能

    C#如何實現(xiàn)調(diào)取釘釘考勤接口的功能

    這篇文章主要介紹了C#如何實現(xiàn)調(diào)取釘釘考勤接口的功能,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • C#使用NUnit進行單元測試詳解

    C#使用NUnit進行單元測試詳解

    NUnit是一個開源的.Net單元測試框架,經(jīng)常被用來在.Net體系下做白盒測試,本文主要為大家詳細介紹了如何C#如何使用NUnit進行單元測試,感興趣的可以了解下
    2023-12-12
  • 解析.NET中幾種Timer的使用

    解析.NET中幾種Timer的使用

    本文主要對.NET中4個Timer類,及其用法進行梳理,具有很好參考價值,需要的朋友一起來看下吧
    2016-12-12
  • C#實現(xiàn)的JS操作類實例

    C#實現(xiàn)的JS操作類實例

    這篇文章主要介紹了C#實現(xiàn)的JS操作類,封裝了C#關(guān)于javascript的彈出對話框、返回上一頁、跳轉(zhuǎn)等常用操作,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • C#使用正則表達式過濾html標簽

    C#使用正則表達式過濾html標簽

    最近在開發(fā)一個項目,其中有需求要求我們把一段html轉(zhuǎn)換為一般文本返回,使用正則表達式是明智的選擇,下面小編給介紹下C#使用正則表達式過濾html標簽,需要的朋友參考下
    2016-08-08

最新評論