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 ...
随机推荐
- Rooks---LightOj1005(排列组合)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1005 题意就是在一个n*n的方格中放k个棋子,每一行每一列都不能有两个棋子,问有多少种 ...
- Python的subprocess模块(二)
原文:http://blog.chinaunix.net/uid-26000296-id-4461522.html 一.subprocess 模块简介 subprocess最早是在2.4版本中引入的. ...
- Numpy包简单介绍
详细介绍可以看Numpy帮助,也有很多资料,此文仅是一个简述性质的集成文章 1.简介 Numpy是Python的一个扩展包,语法和Matlab有很多相似之处.它支持高维数组和矩阵运算,也提供了许多数组 ...
- Java中Map用法详解
原文地址http://blog.csdn.net/guomutian911/article/details/45771621 原文地址http://blog.csdn.net/sunny2437885 ...
- HTML5游戏开发系列教程5(译)
原文地址:http://www.script-tutorials.com/html5-game-development-lesson-5/ 最终我决定准备下一篇游戏开发系列的文章,我们将继续使用can ...
- Tfs更新 TfsConfig
Start TfsJobAgent TfsServiceControl unquiesce 更新serviving状态 TfsConfig diagnose /scope:updates TfsCon ...
- php的正则表达式完全手册
前言 正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感.只要认真去阅读这些资料,加上应用的时候进行一定的参考,掌握正则表达式不是问题. 索引 1._引子 2. ...
- 2017浙江省赛 A - Cooking Competition ZOJ - 3958
地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3958 题目: "Miss Kobayashi's Drag ...
- cocos2d-x项目中如何避免增加一个cpp就必须在工程android.mk文件去添加引用
LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorl ...
- Java线程的几个概念
线程的生命周期: 新建状态:用new语句创建的线程对象处于新建状态,此时它和其它的java对象一样,仅仅在堆中被分配了内存 就绪状态:当一个线程创建了以后,其他的线程调用了它的start()方法,该线 ...