一个在Page_Load之前执行的类,可以执行重写页面呈现,使所有页面拥有统一的特性;比如标题后缀和编写身份验证,IP限制访问等最高级别特性。
一个在Page_Load之前执行的类,可以执行重写页面呈现,使所有页面拥有统一的特性;比如标题后缀和编写身份验证,IP限制访问等最高级别特性。


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


/**//// <summary>
/// 页面基类
/// </summary>
public abstract class PageBase : System.Web.UI.Page


{

重写方法,尽量只添加不修改。#region 重写方法,尽量只添加不修改。


重写页面第一次加载事件#region 重写页面第一次加载事件

/**//// <summary>
/// 重写页面第一次加载事件
/// </summary>
/// <param name="e"></param>
protected override void OnPreInit(EventArgs e)

{
this.ForwardOnPreInit();
base.OnPreInit(e);
}
#endregion


重写页面呈现,使所有页面拥有统一的特性#region 重写页面呈现,使所有页面拥有统一的特性

/**//// <summary>
/// 重写页面呈现,使所有页面拥有统一的特性;比如标题后缀。
/// </summary>
/// <param name="writer"></param>
protected override void Render(HtmlTextWriter writer)

{
this.ForwardRender();
base.Render(writer);
}
#endregion

#endregion


重写方法#region 重写方法


在页面第一次处理之前过程。#region 在页面第一次处理之前过程。

/**//// <summary>
/// 在页面第一次处理之前过程。
/// </summary>
private void ForwardOnPreInit()

{
//这里编写身份验证,IP限制访问等最高级别特性。
}
#endregion


呈现HTML内容之前过程,对HTML内容进行整改。#region 呈现HTML内容之前过程,对HTML内容进行整改。

/**//// <summary>
/// 呈现HTML内容之前过程。
/// </summary>
private void ForwardRender()

{

/**//// 呈现HTML内容之前过程。
this.Title += " - 网站标题后缀名字";
}
#endregion

#endregion


扩展属性#region 扩展属性


获取当前执行页面名和全部的查询字符串(如有)。#region 获取当前执行页面名和全部的查询字符串(如有)。

/**//// <summary>
/// 获取当前执行页面名和全部的查询字符串(如有)。
/// </summary>
protected string PageNameAll

{
get

{
if (ClientQueryString != "")

{
return this.Request.CurrentExecutionFilePath + "?" + ClientQueryString;
}
else

{
return this.Request.CurrentExecutionFilePath;
}
}
}
#endregion


当前执行页面名称。#region 当前执行页面名称。

/**//// <summary>
/// 当前执行页面名称。
/// </summary>
protected string PageName

{
get

{
string pn = this.Request.CurrentExecutionFilePath;
return pn.Substring(pn.LastIndexOf('/') + 1);
}
}
#endregion

#endregion

}
代码丢App_Code文件夹,再在需用调用的页面继承该类就OK了。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/**//// <summary>
/// 页面基类
/// </summary>
public abstract class PageBase : System.Web.UI.Page

{
重写方法,尽量只添加不修改。#region 重写方法,尽量只添加不修改。

重写页面第一次加载事件#region 重写页面第一次加载事件
/**//// <summary>
/// 重写页面第一次加载事件
/// </summary>
/// <param name="e"></param>
protected override void OnPreInit(EventArgs e)
{
this.ForwardOnPreInit();
base.OnPreInit(e);
}
#endregion

重写页面呈现,使所有页面拥有统一的特性#region 重写页面呈现,使所有页面拥有统一的特性
/**//// <summary>
/// 重写页面呈现,使所有页面拥有统一的特性;比如标题后缀。
/// </summary>
/// <param name="writer"></param>
protected override void Render(HtmlTextWriter writer)
{
this.ForwardRender();
base.Render(writer);
}
#endregion
#endregion

重写方法#region 重写方法

在页面第一次处理之前过程。#region 在页面第一次处理之前过程。
/**//// <summary>
/// 在页面第一次处理之前过程。
/// </summary>
private void ForwardOnPreInit()
{
//这里编写身份验证,IP限制访问等最高级别特性。
}
#endregion

呈现HTML内容之前过程,对HTML内容进行整改。#region 呈现HTML内容之前过程,对HTML内容进行整改。
/**//// <summary>
/// 呈现HTML内容之前过程。
/// </summary>
private void ForwardRender()
{
/**//// 呈现HTML内容之前过程。
this.Title += " - 网站标题后缀名字";
}
#endregion
#endregion

扩展属性#region 扩展属性

获取当前执行页面名和全部的查询字符串(如有)。#region 获取当前执行页面名和全部的查询字符串(如有)。
/**//// <summary>
/// 获取当前执行页面名和全部的查询字符串(如有)。
/// </summary>
protected string PageNameAll
{
get
{
if (ClientQueryString != "")
{
return this.Request.CurrentExecutionFilePath + "?" + ClientQueryString;
}
else
{
return this.Request.CurrentExecutionFilePath;
}
}
}
#endregion

当前执行页面名称。#region 当前执行页面名称。
/**//// <summary>
/// 当前执行页面名称。
/// </summary>
protected string PageName
{
get
{
string pn = this.Request.CurrentExecutionFilePath;
return pn.Substring(pn.LastIndexOf('/') + 1);
}
}
#endregion
#endregion
}
代码丢App_Code文件夹,再在需用调用的页面继承该类就OK了。

浙公网安备 33010602011771号