我有这样的asp.net页面:
Default.aspx的:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"></asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
...
</asp:Content>
Default.aspx.cs:
protected void Page_Load(object sender, EventArgs e) {
BodyContent.Style["background-color"] = "Red"; // #1 This code doesn't work
}
我想修改页面的背景颜色。我把上面的代码(#1)放在了它上面。它不起作用。
那么,如何修改页面的背景颜色?
答案 0 :(得分:5)
您无法设置Content
控件的样式,因为它们不会呈现为任何HTML元素。它们仅用于分隔文件之间的内容。
您可以在标题中添加style
元素:
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<style type="text/css">
body { background-color: red; }
</style>
</asp:Content>
答案 1 :(得分:4)
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<div runat="server" ID="divMain">
</div>
</asp:Content>
protected void Page_Load(object sender, EventArgs e) {
divMain.Style.Add("background-color", "red");
}
或者你可以用这种方式做到
Page.Header.Controls.Add(
new LiteralControl(
@"<style type='text/css'>
.myClass
{
background-color: red;
}
</style>
"
)
);
答案 2 :(得分:2)
在您的母版页中围绕您的contentplaceholder包裹DIV
,并使用CSS
为DIV设置样式。
这将导致
<div class="mydiv">
<asp:ContentPlaceHolderID="MainContent">
...
</asp:Content>
</div>