在所有页面共享通用行为

     使用模板和主题能够使网站所有页面共享设计和外观,然而,有一些通用行为也要求共享,比如:显示网站的统计信息,更改页面主题元素等等;

     这里比较好的做法是:写一个BasePage类,让所有的页面都继承自它,而不是从标准的System.Web.UI.Page类继承。这样可以通过重写该类中的On***方法来处理页面上的任何事件;下面以做选择页面主题为例;

      1.首先写BasePage类;

public class BasePage : System.Web.UI.Page { protected override void OnPreInit(EventArgs e) { string id = Globals.ThemesSelectorID; if (id.Length > 0) { // EVENTTARGET为主题选择框的隐藏字段,通过它可以知道是否是由选择主题而使页面会送; if (this.Request.Form["__EVENTTARGET"] == id && !string.IsNullOrEmpty(this.Request.Form[id])) { this.Theme = this.Request.Form[id]; this.Session["CurrentTheme"] = this.Theme; } else { if (this.Session["CurrentTheme"] != null) this.Theme = this.Session["CurrentTheme"].ToString(); } } base.OnPreInit(e); } }

        2.由于使用到模板,所以让模板继承自这个类;

public partial class Template : System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e) { } }

         3.其他页面跟使用正常使用模板时一样;

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="MB.TheBeerHouse.UI._Default" Title="The Beer House" MasterPageFile="~/Template.master" %>

  

你可能感兴趣的:(在所有页面共享通用行为)