如何从内容页面后面的代码更改母版页的背景?

时间:2008-08-05 12:46:45

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

我特别希望将background-color的样式添加到母版页的<body>标记中,从使用该母版页的内容页面的代码(C#)开始。

我有不同的内容页面,需要根据加载的内容页面使主页面具有不同的颜色,以便母版页与内容页面的主题相匹配。

我有以下解决方案:


我正在寻找更像的东西:

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

内容页面的页面加载功能。但我不能让上述工作线上班。我只需要更改页面background-color标记的<body>

3 个答案:

答案 0 :(得分:9)

我会针对特定情况做些什么:

我。将主体定义为服务器端控件

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

II。在您的内容aspx页面中,使用寄存器注册MasterPage:

<% MasterPageFile="..." %>

III。在内容页面中,您现在可以使用

Master.FindControl("masterpageBody")

并可以访问该控件。现在,您可以更改您喜欢的任何属性/样式!

答案 1 :(得分:1)

这就是我提出的:

在页面加载功能中:

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

哪里

  

default_body =正文标记的ID。

答案 2 :(得分:0)

我相信你在谈论内容管理系统。我过去对这种情况的处理方式是:

  1. 允许页面/内容定义额外的自定义样式表或
  2. 允许页面/内容定义内联样式标记