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

时间:2020-03-05 18:37:43  来源:igfitidea点击:

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

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

我有以下解决方案:

我正在寻找更多类似的东西:

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

内容页面的页面加载功能内部。但是我无法使以上内容正常工作。我只需要为页面的<body>标签更改background-color

解决方案

回答

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

  • 允许页面/内容定义额外的自定义样式表或者
  • 允许页面/内容定义内联样式标签

回答

对于特殊情况,我将要做的是:

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

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

ii。在内容aspx页面中,使用以下寄存器注册MasterPage:

<% MasterPageFile="..." %>

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

Master.FindControl("masterpageBody")

并有权使用该控件。现在,我们可以更改所需的任何属性/样式!

回答

这是我想出的:

在页面加载功能中:

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

在哪里

default_body = the id of the body tag.