Tarik
Tarik

Reputation: 81711

Change CSS Dynamically

I need to determine which CSS should be applied on some specific pages. I have a master page which has children and default.aspx and services.aspx are ones of the children of Master page. What I want to is when user navigates Default.aspx or Services.aspx,system should apply DefaultCSS file otherwise I want to apply some ordinary css file.

How can I do that and for this question what kind of practice would be better.

Thanks in advance.

Upvotes: 7

Views: 17079

Answers (4)

user1921
user1921

Reputation:

You might want to investigate using themes as well.

http://msdn.microsoft.com/en-us/library/ykzx33wh.aspx

Upvotes: 2

rick schott
rick schott

Reputation: 20617

Its much easier and more flexible to do this:

MasterPage:

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

Child-Page 1:

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

Child-Page 2:

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

Upvotes: 7

ChrisW
ChrisW

Reputation: 56083

You can include the CSS file declaratively, i.e. in the *.aspx file: see for example this answer.

Upvotes: 1

Tarik
Tarik

Reputation: 81711

I think I've found what I am looking for :

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

Also MSDN was describing how to achieve this : HtmlLink Class

Upvotes: 9

Related Questions