关于c#:如何从内容页面后面的代码更改母版页的背景?

关于c#:如何从内容页面后面的代码更改母版页的背景?

How can I change the background of a masterpage from the code behind of a content page?

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

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

我有以下解决方案:

我正在寻找类似的东西:

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

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


在特殊情况下,我要做的是:

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

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

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

1
<% MasterPageFile="..." %>

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

1
Master.FindControl("masterpageBody")

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


这是我想出的:

在页面加载功能中:

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

其中

default_body = the id of the body tag.


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

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

  • 推荐阅读