在母版页上的代码中更改样式表

时间:2009-08-08 12:52:13

标签: c# asp.net css

在maste页面中,我设置了定义布局的样式表。

 <link id="layoutStylesheet" href="CSS/Layout3Col.css" rel="stylesheet" type="text/css" runat="server" />

我有一个继承母版页的ShowDoc.aspx页面 我想在查询字符串中将特定参数传递给ShowDoc.aspx时加载不同的css文件。

我该怎么做? 我应该在母版页中定义公共属性,以便showDoc.aspx可以访问它并更改layoutStylesheet吗?

3 个答案:

答案 0 :(得分:9)

您可以使用Page_Load中ShowDoc页面上的Master属性找到样式表链接,并在那里重新定义Href属性。

HtmlLink link = Page.Master.FindControl( "layoutStyleSheet" ) as HtmlLink;
link.Href = ...your chosen stylesheet...

答案 1 :(得分:0)

一些不同的方法,但最简单的方法是在主页的Form_Load中添加这种代码:

switch (Request["whateverstyle"]) {
    case "style1" : layoutStylesheet.Attributes["href"] = "style1.css";
    case "style2" : layoutStylesheet.Attributes["href"] = "style2.css";
    ...
}

答案 2 :(得分:0)

根据您想要更改此页面的页数以及同时更改了多少其他页面,您可能需要考虑嵌套母版页。

根母版页可以定义doctype / html / head / body和所有共享内容;您的“子”母版页可以将其用作自己的母版页。页面将仅使用子母版页。

请注意,您可以在Form外使用ContentPlaceHolder控件,因此可以将其放在HEAD元素中。