先写一个继承了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 description for PageBase/// 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); } }