2008-08-05 89 views
16

我特别希望将background-color的样式添加到母版页的<body>标记中,该标记来自使用该母版页的内容页的后面的代码(C#)。如何从内容页面后面的代码更改母版的背景?

我有不同的内容页面需要使主页面具有不同的颜色,具体取决于加载哪个内容页面,以便主页面匹配内容页面的主题。

下面我有一个解决方案:


我正在寻找更多的东西一样:

Master.Attributes.Add("style", "background-color: 2e6095"); 

里面的内容页面的页面加载的功能。但是我无法获得上述线路的工作。我只需要更改页面的<body>标记的background-color

+0

这里是一个更好的解决方案http://stackoverflow.com/questions/21476068/asp-net-changing-master-page-section-css-from-content-page – 2016-07-27 18:00:56

回答

8

我会做的特定情况是:

i。将身体定义为服务器端控件

<body runat="server" id="masterpageBody"> 

ii。在您的内容aspx页面中,将MasterPage注册到注册表中:

<% MasterPageFile="..." %> 

iii。在内容页面中,您现在可以简单地使用

Master.FindControl("masterpageBody") 

并有权访问该控件。现在,你可以改变你喜欢的任何属性/风格!

+0

你介意澄清Master.FindControl (“masterpageBody”)并添加一些示例来添加css类。 – 2016-07-27 17:34:33

0

我相信你在谈论一个内容管理系统。我有这样的情况在过去的衣食住行的办法是要么:

  1. 让网页/内容定义一个额外的自定义样式表或
  2. 让网页/内容来定义内嵌样式标签
1

这是我想出了:

在页面加载功能:

HtmlGenericControl body = (HtmlGenericControl)Master.FindControl("default_body"); 
body.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#2E6095"); 

default_body = body标签的ID。

相关问题