在所有页面共享通用行为

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

     这里比较好的做法是:写一个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" %>

  

时间: 2024-08-19 00:43:16

在所有页面共享通用行为的相关文章

服务器无法通过系统非页面共享区来进行分配

服务器开始阶段性的出现死机状态了.隔一段时间就无法连接了.重启后正常,过一段时间又是同样的问题. 事件查看器中有大量的同样报错: 事件ID:2020 描述:服务器无法通过系统页面共享区来进行分配,因为共享区当前是空的. 事件ID:333 描述:由注册表引起的 I/O 操作发生了不可恢复的错误. 注册表将不能读取.写出或刷新包含注册表系统图像的其中一个文件. 尝试用以下方法解决这个问题,效果还有待观察: 1.启动注册表编辑器(开始->运行->Regedt32.exe). 2.在注册表中找到并单击

php5会话-php5 session多页面共享

问题描述 php5 session多页面共享 目的:1.php文件注册成功后,保存一个session,希望在default.php文件中读取,但是总不能成功,为什么? php5版本. 1.php <?php session_start(); if (登录成功) { echo "登录成功"; $_SESSION["nickname"] = "abc" ; } } header("Location: default.php"

Angularjs实现多个页面共享数据的方式_AngularJS

废话不多说了,直接看干货吧. 使用service来共享数据 定义一个共享服务的service //家电维修共享数据的服务 angular.module("sqhApp").factory("repairDeviceDataShareServer",function($http,$state,$ionicPopup){ return { //缓存当前需要维修的设备名称.数量.唯一标识 deviceRepairObj : [], //小区位置 xiquLocation:

多个jsp页面共享一个js对象的超级方法_JSP编程

今天,在项目中遇到一个问题,两个js页面要共享一个就js对象.js全局变量和静态变量都不行,其他苦逼的小农们就不要去强求了.而LZ又不想用cookie来存放,一是不安全,二个人喜好.最后发现一种超级方法来解决这个困扰,那就是用window.top['_CACHE']来存放这个变量,即可实现,不同Jsp页面直接的对象共享. var share = { /** * 跨框架数据共享接口 * @param {String} 存储的数据名 * @param {Any} 将要存储的任意数据(无此项则返回被查

多个jsp页面共享一个js对象的超级方法

 今天,在项目中遇到一个问题,两个js页面要共享一个就js对象.js全局变量和静态变量都不行,其他苦逼的小农们就不要去强求了.而LZ又不想用cookie来存放,一是不安全,二个人喜好.最后发现一种超级方法来解决这个困扰,那就是用window.top['_CACHE']来存放这个变量,即可实现,不同Jsp页面直接的对象共享. var share = { /** * 跨框架数据共享接口 * @param {String} 存储的数据名 * @param {Any} 将要存储的任意数据(无此项则返回被

window.top[_CACHE]实现多个jsp页面共享一个js对象_JSP编程

今天,在项目中遇到一个问题,两个js页面要共享一个就js对象.js全局变量和静态变量都不行,其他苦逼的小农们就不要去强求了.而LZ又不想用cookie来存放,一是不安全,二个人喜好.最后发现一种超级方法来解决这个困扰,那就是用window.top['_CACHE']来存放这个变量,即可实现,不同Jsp页面直接的对象共享. var share = { /** * 跨框架数据共享接口 * @param {String} 存储的数据名 * @param {Any} 将要存储的任意数据(无此项则返回被查

ASP.NET 2.0的页面缓存功能介绍

asp.net|缓存|页面 页面部分缓存是指输出缓存页面的某些部分,而不是缓存整个页面内容.实现页面部分缓存有两种机制:一种是将页面中需要缓存的部分置于用户控件(.ascx文件)中,并且为用户控件设置缓存功能(包含用户控件的ASP.NET页面可设置也可不设置缓存).这就是通常所说的"控件缓存".设置控件缓存的实质是对用户控件进行缓存配置.主要包括以下3种方法:一是使用@ OutputCache指令以声明方式为用户控件设置缓存功能,二是在代码隐藏文件中使用PartialCachingAt

用FrontPage 2000制作共享边框网页

frontpage|网页 共享边框就是站点上有一个或多个网页共享的区域.共享边框可能是一个在网页顶端(类似于网页页眉).底端(类似于网页页脚).左边或右边的区域.共享边框是创建具有一致外观的网页的最快速最灵活而且最容易的方法. 使用共享边框,仅用一个步骤即可将相同的内容放入多个网页中,而不用分别编辑每一个网页,可谓方便到家. 例如∶要快速在站点上每个网页的顶部放上徽标或者要更改具有 300个网页的 Web 站点的版权注意事项,可将上边框.页脚设置成共享,再将图案和版权注意事项添加到上边框及页脚就

windows phone页面间数据共享

 可以通过静态属性Application.Current可以返回当前程序的Application对象,然后可以简单地将其转换成App类型.这意味着可以使用App类来存储用于程序中多个页面共享的数据.下面例子演示如何利用App类实现页面间数据共享:在Silverlight项目的App类定义一个简单的公共属性:public partial class App : Application{//用于在页面间共享数据的公共属性public Color? SharedColor { set; get; }/