我建立一个母板页 Admin.Master .和 在 App_Themes目录下建立了1套皮肤(DefaultTheme)。我现在有个需求,将所有使用Admin.Master的页面都使用皮肤DefaultTheme 。
我知道有一种方法是在web.config<pages theme="DefaultTheme"/></system.web>
但是因为某些原因,我不能使用上面的方法。
还有种方法,是将 使用母板页的普通页面,所有这样的所有页面都添加一个theme节点。比如
<%@ Page Title="ClassroomInfo" Language="C#" Theme="DefaultTheme" MasterPageFile="~/MasterPage/Admin.master" %>
但是这样的话感觉不爽,要是建立一百个页面,还得每个页面都添加。
有没有哪种方法,可以直接在母板页(master) 添加一个属性或者代码,就可以把皮肤应用到那些普通的页面了呢?
------解决方案--------------------------------------------------------
Master里面
protected void Page_PreInit(object sender, EventArgs e)
{
Page.Theme = "DefaultTheme";
}
------解决方案--------------------------------------------------------
对,母版页不能使用Theme
不能直接将 ASP.NET 主题应用于母版页。 如果向 @ Master 指令添加一个主题特性,则页在运行时会引发错误。
但是,主题在下面这些情况中会应用于母版页:
如果主题是在内容页中定义的。 母版页在内容页的上下文中解析,因此内容页的主题也会应用于母版页。
如果通过在 pages 元素(ASP.NET 设置架构) 元素中包含主题定义来将整个站点配置为使用主题。
http://msdn.microsoft.com/zh-cn/library/wtxbf3hh.aspx#ScopingMasterPages
你可以写一个基类,你的内容页都继承这个基类
------解决方案--------------------------------------------------------