Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在母版页上的代码隐藏中更改样式表_C#_Asp.net_Css - Fatal编程技术网

C# 在母版页上的代码隐藏中更改样式表

C# 在母版页上的代码隐藏中更改样式表,c#,asp.net,css,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可以访问它并更

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

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

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

我该怎么做?

我是否应该在母版页中定义公共属性,以便showDoc.aspx可以访问它并更改布局样式表?

有许多不同的方法,但最简单的方法可能是在母版页的表单加载中添加此类代码:

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

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

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

取决于您想要更改多少页,同时更改了多少其他内容,您可能需要考虑嵌套母版页。

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


请注意,您可以在表单外部使用ContentPlaceHolder控件,这样就可以在HEAD元素中放置一个控件。

是否有效?继承此母版页的多个页面中,只有一个页面需要切换css,但使用此选项时,将检查每个pafe。选择“打印版本”时,仅检查一个页面“showdoc.aspx”。好的,可能不值得仅为此使用嵌套母版页。