一个在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


    
#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了。

 

主要参考文章链接:http://www.cnblogs.com/maple-net/articles/651441.html

 posted on 2009-12-08 11:00  Alex.Shi  阅读(946)  评论(0编辑  收藏  举报