C#Page用于各页面继承功能实例
本文实例讲述了C#Page用于各页面继承功能的实现方法。分享给大家供大家参考。具体方法如下:
IBasePage.cs文件如下:
///用于页面或用户控件
///</summary>
publicinterfaceIBasePage
{
///<summary>
///数据缓存类
///</summary>
DbCacheCacheHelp{get;}
///<summary>
///页面视图,用于页面级别访问,模仿MVC
///</summary>
ViewDataDictViewData{get;}
///<summary>
///获取DataTable.Rows,此方法不会出错异常
///</summary>
///<paramname="pName">数据名称</param>
///<returns></returns>
DataRowCollectionViewDataRows(stringpName);
///<summary>
///1:true否则false
///</summary>
///<paramname="pName"></param>
///<returns></returns>
boolIsViewData(stringpName);
///<summary>
///URL参数类
///</summary>
UrlQueryUQ{get;}
///<summary>
///页面搜索关键词,搜索关键词是最基本功能,故在这里放一个字段
///</summary>
stringsearchStr{get;set;}
///<summary>
///权限使用次数
///</summary>
intUserFunCount{get;set;}
///<summary>
///数据库链接次数
///</summary>
intDbCount{get;set;}
///<summary>
///用与判断增加style,js等是否已重复添加
///</summary>
///<paramname="pName"></param>
///<returns></returns>
TempListHandlerTempList{get;}
}
BasePage.cs文件如下:
///整站页面基础类
///</summary>
publicclassBasePage:System.Web.UI.Page,IBasePage
{
privatestaticreadonlyDataRowCollectionEmptyRows=newDataTable().Rows;
privateDbCachecacheHelp;
privateViewDataDictviewData;
privateViewDataDictviewDataM;
privateintuserFunCount=0;//权限使用次数
privateintdbCount=0;//数据库连接次数
privateTempListHandlertempList;
protectedboolIsOpenXingNengTongji=true;
#region搜索关键词
//privatestring_searchStr;
publicstringsearchStr
{
get
{
//if(this._searchStr==null)
//{
// returnstring.Empty;
//}
returnViewData["keyword"].ToString();
}
set
{
//this._searchStr=value;
ViewData["keyword"]=value;
}
}
#endregion
#region将数据保存在页面控件里ViewDataPage
///<summary>
///将数据保存在页面控件里
///</summary>
publicstringViewDataPage
{
get
{
returnReq.Form("__viewdatapage");
}
set
{
this.ClientScript.RegisterHiddenField("__viewdatapage",value);
//this.ClientScript.RegisterClientScriptBlock(this.GetType(),"__urlreferrer","<inputid=\"__urlreferrer\"name=\"__urlreferrer\"type=\"hidden\"value=\""+value+"\"/>");
}
}
#endregion
publicBasePage()
{
cacheHelp=newDbCache();
viewData=newViewDataDict();
viewDataM=newViewDataDict("model_");
tempList=newTempListHandler();
}
privateDateTime__time1;
privateDateTime__time2;
privatestaticint__i=0;
#region跟根URL重写获取参数
///<summary>
///跟根URL重写获取参数
///</summary>
privateUrlQuery_UQ;
protectedoverridevoidOnInit(EventArgse)
{
_UQ=newUrlQuery(true);
__time1=DateTime.Now;
base.OnInit(e);
}
protectedoverridevoidOnPreInit(EventArgse)
{
//"OnPreInit".WriteLine();
base.OnPreInit(e);
}
#endregion
#region基本信息统计
protectedoverridevoidRender(System.Web.UI.HtmlTextWriterwriter)
{
//"Render".WriteLine();
base.Render(writer);
__i++;
__time2=DateTime.Now;
TimeSpants=__time2-__time1;
if(IsOpenXingNengTongji)
Response.Write(@"<divstyle=""text-align:center;color:#ccc"">Number:"+__i+",Time:"+ts.TotalMilliseconds+"ms,DB="+this.dbCount+",fun="+this.userFunCount+"</div>");
}
#endregion
protectedoverridevoidOnUnload(EventArgse)
{
//"OnUnload".WriteLine();
base.OnUnload(e);
}
#region将搜索到的结果为醒目显示
///<summary>
///将搜索到的结果为醒目显示
///</summary>
///<paramname="str"></param>
///<returns></returns>
publicstringReplaceSearchText(objectstr)
{
if(searchStr==null||searchStr.Length==0)
returnstr.ToString();
//returnstr.ToString().Replace(searchStr,"<strongstyle=\"color:#F00\">"+searchStr+"</strong>");
returnRegex.Replace(str.ToString(),Regex.Escape(searchStr),"<strongstyle=\"color:#F00\">"+searchStr+"</strong>",RegexOptions.IgnoreCase);
}
#endregion
#regionIBasePage成员
///<summary>
///数据缓存类
///</summary>
publicDbCacheCacheHelp
{
get{returnthis.cacheHelp;}
}
///<summary>
///页面视图,用于页面级别访问,模仿MVC
///</summary>
publicViewDataDictViewData
{
get{returnthis.viewData;}
}
///<summary>
///页面视图(Model),用于页面级别访问,模仿MVC
///</summary>
publicViewDataDictViewDataM
{
get{returnthis.viewDataM;}
}
///<summary>
///获取DataTable.Rows,此方法不会出错异常
///</summary>
///<paramname="pName"></param>
///<returns></returns>
publicDataRowCollectionViewDataRows(stringpName)
{
DataTabledt=ViewData[pName]asDataTable;
if(dt==null)
{
returnEmptyRows;
}
returndt.Rows;
}
publicboolIsViewData(stringpName)
{
returnviewData[pName].ToString()=="1";
}
publicUrlQueryUQ
{
get{returnthis._UQ;}
}
/////<summary>
/////获取系统配置
/////</summary>
/////<paramname="key"></param>
/////<returns></returns>
//publicstringSysConfig(stringkey)
//{
// returnWConfigBLL.GetValue(key).ToString();
//}
publicTempListHandlerTempList
{
get{returnthis.tempList;}
}
publicintUserFunCount
{
get{returnthis.userFunCount;}
set{this.userFunCount=value;}
}
publicintDbCount
{
get{returnthis.dbCount;}
set{this.dbCount=value;}
}
#endregion
#regionITrace成员
//privateintdbConnectionCount;
/////<summary>
/////数据库连接次数
/////</summary>
//publicintDbConnectionCount
//{
// get
// {
// returnthis.dbConnectionCount;
// }
// set
// {
// dbConnectionCount=value;
// }
//}
#endregion
#region获取或设置提交后返回的路径,若未指定,则是当前url
///<summary>
///获取或设置提交后返回的路径,若未指定,则是当前url
///</summary>
publicstringUrlReferrer
{
get
{
strings=Req.Form("___urlreferrer");
if(s.Length==0)
{
s=ViewData["___urlreferrer"].ToString();
}
if(s.Length==0)
{
s=Request.Url.ToString();
}
returns;
}
set
{
ViewData["___urlreferrer"]=value;
this.ClientScript.RegisterHiddenField("___urlreferrer",value);\"type=\"hidden\"value=\""+value+"\"/>");
}
}
#endregion
}
希望本文所述对大家的C#程序设计有所帮助。
相关文章
- 使用C ORM加快MySQL访问速度(C# orm mysql)
- C与MySQL结合实现处理图片的功能(c# mysql 图片)
- ASP.net(c#)用类的思想实现插入数据到ACCESS例子
- C#double和decimal数据类型以截断的方式保留指定的小数位数
- c#备忘录模式
- C#实现简单打印的实例代码
- C#打印出正等腰三角形实例代码
- C#数据结构之循环链表的实例代码
- C#DataTable转换为实体类对象实例
- 在C#中对TCP客户端的状态封装详解
- C#基础延迟加载介绍与实例
- 使用C#实现在屏幕上画图效果的代码实例
- C#实现协同过滤算法的实例代码
- C#计算两个文件的相对目录算法的实例代码
- C#中委托的基本用法总结
- C#同步和异步调用方法实例
- C#串口通信程序实例详解
- c#网站WebConfig中域名引用示例介绍
- c#图像截取实例
- C#特性扩展方法
- C#中JavaScriptSerializer帮助类用法实例
- 初步认识C#中的Lambda表达式和匿名方法
- 基于C#实现的HOOK键盘钩子实例代码
- C#中使用Split方法拆分字符串实例
- C#采用递归实现阶乘的方法
- C#简单多线程同步和优先权用法实例
- C#托管堆对象实例包含内容分析
- C#中datatable序列化与反序列化实例分析