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 ...
随机推荐
- Python中的编码与解码(转)
Python中的字符编码与解码困扰了我很久了,一直没有认真整理过,这次下静下心来整理了一下我对方面知识的理解. 文章中对有些知识没有做深入的探讨,一是我自己也没有去深入的了解,例如各种编码方案的实现方 ...
- 【我的Android进阶之旅】Android目录过长造成错误:Failed to crunch file abc_textfield_search_activated_mtrl_alpha.9.png
一.编译异常描述 一大早来开发一个新的需求,拉取了一个新的分支,然后导入Android Studio之后,编译就报错了,报错如下所示: 错误具体日志如下所示: Information:Gradle t ...
- Android Volley全然解析(四),带你从源代码的角度理解Volley
版权声明:本文出自郭霖的博客,转载必须注明出处. https://blog.csdn.net/sinyu890807/article/details/17656437 转载请注明出处:http://b ...
- 关联规则之Apriori
1.关联规则原理 1.关联规则概述 关联规则(Association Rules)是反映一个事物与其他事物之间的相互依存性和关联性,如果两个或多个事物之间存在一定的关联关系,那么,其中一个事物就能通过 ...
- 网络爬虫Java实现抓取网页内容
package 抓取网页; import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream; ...
- ZJOI 2009 假期的宿舍 最大匹配
主要是main()中的处理,接下来就是二分匹配的模板题了 #include<cstdio> #include<cstring> #define maxn 110 using n ...
- iOS跳转到Touch ID设置界面
1.首先去info.plist 设置: 2.代码 NSURL *url = [NSURL URLWithString:@"App-Prefs:root=TOUCHID_PASSCODE&qu ...
- LNMP环境简单教程
一:LNMP可以进行简单优化,主要2方面.NGINX和PHP进程数,分别是以下2个文件: 1. /usr/local/nginx/conf/nginx.conf2. /usr/local/php/et ...
- java中静态变量,静态代码块,静态方法,实例变量,匿名代码块等的加载顺序
转自:http://blog.csdn.net/mrzhoug/article/details/51581994 一.在Java中,使用”{}”括起来的代码称为代码块,代码块可以分为以下四种: 1.普 ...
- 机器学习与R语言:C5.0
#---------------------------------------- # 功能描述:演示C50建模过程 # 数据集:汉堡大学信贷模型,信贷数据 # #------------------ ...