如何修改使用asp:asp的asp.net页面的样式?

时间:2011-12-14 08:24:57

标签: asp.net css

我有这样的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)放在了它上面。它不起作用。

那么,如何修改页面的背景颜色?

3 个答案:

答案 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>