2009-10-01 98 views
7

我需要确定哪些CSS应该应用于某些特定页面。我有一个母版页,其中有子页面,并且default.aspxservices.aspx是Master页面的子页面之一。当用户浏览Default.aspx的Services.aspx我想是,系统应适用DefaultCSS文件,否则我想申请一些普通CSS文件。动态更改CSS

我该怎么做,对于这个问题,什么样的做法会更好。

在此先感谢。

回答

9

我想我已经找到了我要找:

protected void Page_Init(object sender, EventArgs e) 
    { 
     HtmlLink css = new HtmlLink(); 
     css.Href = "css/fancyforms.css"; 
     css.Attributes["rel"] = "stylesheet"; 
     css.Attributes["type"] = "text/css"; 
     css.Attributes["media"] = "all"; 
     Page.Header.Controls.Add(css); 
    } 

而且MSDN是介绍如何实现这一点:HtmlLink Class

1

可以包括声明的CSS文件,即在*.aspx文件:例如参见this answer

7

它更容易和更灵活地做到这一点:

母版:

<head> 
    <asp:ContentPlaceHolder ID="head" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 

儿童第1页:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> 
    <link href="css/fancyforms.css" rel="stylesheet" type="text/css" /> 
</asp:Content> 

儿童第2页:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> 
    <link href="css/NOTfancyforms.css" rel="stylesheet" type="text/css" /> 
</asp:Content> 
+0

叶氏,你是对的,但我不知道,我只是想获得幻想有关,但我很喜欢你的解决方案比我多。 – Tarik 2009-10-01 02:34:22

+0

这种方法的好处是,如果您更改.css,.js,meta标签......无论如何,您不必重新编译任何内容。您还将在Visual Studio中为您的.aspx获得设计时支持。 – 2009-10-01 02:36:50

+0

你说得对,这些好处不能眨眼。谢谢。 – Tarik 2009-10-01 02:40:45