当前位置: 首页 > 编程笔记 >

C# Page用于各页面继承功能实例

谭正谊
2023-03-14
本文向大家介绍C# Page用于各页面继承功能实例,包括了C# Page用于各页面继承功能实例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了C# Page用于各页面继承功能的实现方法。分享给大家供大家参考。具体方法如下:

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 }

希望本文所述对大家的C#程序设计有所帮助。

 类似资料:
  • 问题内容: 在C ++中,可以通过在子类中将其声明为私有来禁用父类中的函数。如何在Python中完成?IE如何在孩子的公共界面中隐藏父母的功能? 问题答案: 在Python中确实没有任何真正的“私有”属性或方法。您可以做的一件事就是简单地覆盖子类中不需要的方法,并引发一个异常:

  • 问题内容: 假设Java具有以下层次结构类: 这是C#中相同代码的(盲)重复: 当我执行Java代码时,我得到了C#返回的信息。 对我来说,C#的结果更有意义,因为引用B调用了它自己的方法。 Java设计者决定打印而不是打印的逻辑是什么?我的意思是,为什么引用B在C中使用覆盖方法?这种方法的优势是什么? 如何更改Java代码以像C#一样打印出来?我的意思是,我怎么教Java调用它使用的完全引用的方

  • 主要内容:1、基类和派生类,2、多重继承继承与 封装和 多态被统称为面向对象编程的三大特性,本节我们主要来介绍一下继承这一特性。 在创建一个新类时,我们可以使用这个新定义的类继承一个已有的类,通过继承可以在创建新类时重用、扩展和修改被继承类中定义的成员。被继承的类称为“基类(父类)”,继承基类的类称为“派生类(子类)”。 需要注意的是,C# 中只支持单继承,也就是说一个派生类只能继承一个基类,但是继承是可以传递的,例如 ClassC 继

  • 面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行时间的效果。 当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。 继承代表了 is a 关系。例如,哺乳动物是动物,狗是哺乳动物,因此,狗是动物,等

  • 主要内容:多继承下的构造函数,命名冲突在前面的例子中,派生类都只有一个基类,称为 单继承(Single Inheritance)。除此之外, C++也支持 多继承(Multiple Inheritance),即一个派生类可以有两个或多个基类。 多继承容易让代码逻辑复杂、思路混乱,一直备受争议,中小型项目中较少使用,后来的 Java、 C#、 PHP 等干脆取消了多继承。 多继承的语法也很简单,将多个基类用逗号隔开即可。例如已声明了类A

  • 本文向大家介绍C++实现不能被继承的类实例分析,包括了C++实现不能被继承的类实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例展示了C++实现不能被继承的类的方法,对于C++初学者而言有一定的学习借鉴价值。具体实现方法如下: 方法一: 该方法其实就是把构造函数、析构函数private了,这样的话当想派生一个类时,派生类无法构造一个父类,所以就不行了。 方法二: 类B设置为类A的友元,这样