动态设置ASPX页面的Title值

先写一个继承了System.Web.UI.Page 的基类PageBase,在基类PageBase中定义一个PageTitle属性, 重写OnLoad方法让Title=PageTitle的值.

为什么不在分类的产品列表页面的cs中直接override重写Page的Title方法呢?以为很遗憾的是Page的Title方法不是virtual的.

 

PageBase.cs代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for PageBase
/// </summary>
public class PageBase:System.Web.UI.Page
{
    public PageBase()
    {
        //
        // TODO: Add constructor logic here
        //
    }
    protected virtual string PageTitle
    {
        get
        {
            return this.Title; //这里的get和set不重要,在基类中会重写它的get,set让PageTitle等于指定的值
        }

    }
    protected override void OnLoad(EventArgs e)
    {
            base.OnLoad(e);
            this.Title = this.PageTitle;
            
    }
}

ASPX.CS中重写PageTitle :

    protected override string PageTitle
    {
        get
        {
            string title = "商城 - {0}类别";
            string categoryname = Convert.ToString(new QueriesTableAdapter().GetCategoryNameByCategoryID(int.Parse(Context.Request["CategoryID"])));
            return string.Format(title,categoryname);
        }
    }

 

 

posted @ 2013-05-17 15:43  一切都是幸福叻  阅读(194)  评论(0编辑  收藏  举报