Masterpage与主题决策进退两难

时间:2012-01-11 08:57:16

标签: c# asp.net themes master-pages

关于客户的要求我是决定性的困境

  

我想更改网站的外观和布局 - XXX客户端

一般来说,这应该是如何运作的,

  • 您可以使用不同的图像和颜色更改网站显示的主题。

  • 您更改网站更改网页布局的母版页(侧栏从左向右移动 - 只要在母版页中指定了布局)

我对如何实现这一点感到困惑。如果我使用默认母版页设计我的页面,那么当我切换到另一个母版页时,无法保证其他母版页可能具有相同的内容占位符。

This would throw an exception

如何智能地实现多个母版页,而无需为各自的母版页创建2个页面?

修改

困境是由其他同事在他开发的页面中实现自己的想法引起的,他通过弹出窗口在侧边栏上显示表单链接点击我的指示到单独的页面。

2 个答案:

答案 0 :(得分:1)

您应该能够在CSS中实现此功能,而无需更改主页或主题。这样您就可以保证内容占位符不会改变。

更改要从CSS设置的图像(类似):

.imageFromCss { background:url("../images/myimage.png");}

CSS可以从左到右移动侧边栏:

.sidebar {display:inline; float:right;}

答案 1 :(得分:1)

您可以动态更改PreIint上的母版页。

    Select Case iForum
        Case 6 '41 
            MasterPageFile = "/Children/Forum.master"
        Case Else

            MasterPageFile = "/Ezra/Forum.master"
    End Select

(我知道我可以写出更好的例子)

现在,使用您的变量,函数等创建一个BaseMaster类,并从此类继承网站MasterPage。

现在添加到页面顶部:

<%@ MasterType TypeName="ForumMaster"%>

现在只使用Master.YourFunction()。它适用于所有MasterPages。

祝你好运!