2009-10-01 28 views
7

を特定のページに適用する必要があります。私は子供を持っているマスターページを持っていて、default.aspxservices.aspxはマスターページの子供のものです。私がしたいことは、ユーザがDefault.aspxのまたはServices.aspxを移動すると、システムがそうでなければ、私はいくつかの通常のCSSファイルを適用するDefaultCSSファイルを適用する必要があります。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

Yeap、あなたは正しいですが、私はちょうどそのことについて空想を取得したいが、私は私のものよりもあなたのソリューションを気に入って知りません。 – Tarik

+0

このアプローチの利点は、.css、.js、メタタグなどを変更すると、何かを再コンパイルする必要がないということです。また、.aspx用にVisual Studioでデザイン時サポートを受けることもできます。 –

+0

あなたが正しいです、これらの利点は点滅することはできません。ありがとう。 – Tarik

関連する問題