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 = ;//权限使用次数
private int dbCount = ;//数据库连接次数 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 = ; #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 == )
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() == "";
} 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 == )
{
s = ViewData["___urlreferrer"].ToString();
} if (s.Length == )
{
s = Request.Url.ToString();
} return s;
}
set
{
ViewData["___urlreferrer"] = value; this.ClientScript.RegisterHiddenField("___urlreferrer", value);\" type=\"hidden\" value=\"" + value + "\" />");
}
}
#endregion
}
C# Page基础功能,用于各页面继承的更多相关文章
- [ kvm ] 学习笔记 3:KVM 基础功能详解
1. 构建 KVM 环境 KVM 从诞生开始就需要硬件虚拟化的支持,KVM 必需的硬件虚拟化扩展分别是:Intel 的虚拟化技术(Intel VT)和 AMD 的 AMD-V 技术.首先处理器(CPU ...
- 谷歌page speed 安装使用及页面问题详解
原文地址:http://wenku.baidu.com/view/b0a61f3ebcd126fff7050b40.html 谷歌page speed 安装使用及页面问题详解 谷歌page speed ...
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.0,完善基础功能(源码)
(前段时间封闭式开发完了一个项目,最近才有时间继续更新GG的后续版本,对那些关注GG的朋友来说,真的是很抱歉.)GG的前面几个版本开发了一些比较高级的功能,像视频聊天.远程桌面.文件传送.远程磁盘等, ...
- [.net 面向对象编程基础] (12) 面向对象三大特性——继承
[.net 面向对象编程基础] (12) 面向对象三大特性——继承 上节我们说了面向对象的三大特性之一的封装,解决了将对同一对象所能操作的所有信息放在一起,实现统一对外调用,实现了同一对象的复用,降低 ...
- jmeter 基础功能详解
jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...
- Java基础-面向对象第二特征之继承(Inheritance)
Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...
- (转)Chrome开发者工具不完全指南(一、基础功能篇)
本篇转载自卖烧烤夫斯基,并做了小部分的修改. 原文地址:Chrome开发者工具不完全指南(一.基础功能篇) 原作者:卖烧烤夫斯基 就算你不是一名前端开发工程师,相信你也不会对Chrome浏览器感到陌生 ...
- 六、EnterpriseFrameWork框架基础功能之权限管理
回<[开源]EnterpriseFrameWork框架系列文章索引> 从本章开始进入框架的第二块内容“EnterpriseFrameWork框架的基础功能”,包括:权限管理.字典数据管理. ...
- 系统管理模块_岗位管理_改进_使用ModelDroven方案_套用美工写好的页面效果_添加功能与修改功能使用同一个页面
改进_使用ModelDroven方案 @Controller @Scope("prototype") public class RoleAction extends ActionS ...
随机推荐
- Mysql文章笔记
Mysql名词解释/含义/读书笔记 MVCC(Multiversion concurrency control) MySQL InnoDB存储引擎,实现的是基于多版本号的并发控制协议--MVCC (M ...
- 【云安全与同态加密_调研分析(3)】国内云安全组织及标准——By Me
◆3. 国内云安全组织及标准◆ ◆云安全标准机构(主要的)◆ ◆标准机构介绍◆ ◆相关标准制定◆ ◆建立的相关模型参考◆ ◆备注(其他参考信息)◆ ★中国通信标准化协会(CCSA) ●组织简介:200 ...
- 单例Singleton模式的两种实现方法
在设计模式中,有一种叫Singleton模式的,用它可以实现一次只运行一个实例.就是说在程序运行期间,某个类只能有一个实例在运行.这种模式用途比较广泛,会经常用到,下面是Singleton模式的两种实 ...
- Git的安装和设置
1.客户端下载 首先可以在https://git-scm.com/downloads下载客户端,进行安装. 2.安装 安装比较简单,可以直接默认一步一步往下安装即可: 3.配置github的ssh秘钥 ...
- opencv:vs2015添加了包含目录依然无法打开‘opencv2/core/core.hpp’ 解决方法
安装环境 win10 vs2015 出错和改错 按网上的教程,配置好opencv后,包括已经把以下内容添加到'包含目录'了: E:\openCV\opencv\build\include E:\ope ...
- jQuery动态效果学习笔记
资料来源 W3Cschool 1.元素的显示与隐藏 1.1显示元素show() 语法 $(selector).show(speed,callback); 显示已经设置隐藏的元素 1.2隐藏元素hide ...
- oracle 数据库误删数据,误删表的恢复
1.某表的数据误删了,那么可以查询这个表某一时间节点之前的数据,并放到一个新建的表里. create table temptable as select * from t_billdefi as O ...
- 一步一步学EF系列【5、升级篇 实体与数据库的映射】live writer真坑,第4次补发
前言 之前的几篇文章,被推荐到首页后,又被博客园下了,原因内容太少,那我要写多点呢,还是就按照这种频率进行写呢?本身我的意图这个系列就是想已最简单最容易理解的方式进行,每篇内容也不要太多,这样初学者容 ...
- PKU 3318 Matrix Multiplication(神奇的输入)
#include<cstdio> using namespace std; ][]; ][],C[][]; int Read() { ; ; while((ch=getchar())==' ...
- Hadoop2.0环境搭建
需准备的前提条件: 1. 安装JDK(自行安装) 2. 关闭防火墙(centos): systemctl stop firewalld.service systemctl disable firewa ...