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



我的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),它不起作用。

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

   <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>
            "
        )
);

你不能样式化Content控件,因为它们不呈现为任何HTML元素。它们只是用来分隔文件之间的内容。

您可以在header中放置一个style元素:

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<style type="text/css">
body { background-color: red; }
</style>
</asp:Content>

在主页的内容占位符周围使用DIV,并使用CSS来设置div的样式。

这将导致

<div class="mydiv">
<asp:ContentPlaceHolderID="MainContent"> 
     ... 
</asp:Content>
</div>

最新更新