以编程方式处理页面主题

时间:2010-05-31 21:44:58

标签: c# asp.net webforms asp.net-3.5 themes

我的主题中有以下设置:

  • \App_Themes\Default\StyleSheet.css
  • \App_Themes\Default\PrintStyleSheet.css

PrintStyleSheet.css文件中设置了一组打印的css规则,包含在@Media Print { }块中。

我需要一种方法以编程方式从ASP.NET的css文件列表中删除PrintStyleSheet.css以基于某些标志进行注入。 (有些情况我们希望逐字打印网站而不进行自定义格式化。)

我知道我可以在没有PrintStyleSheet.css的情况下构建一个单独的主题,并以编程方式切换主题,但这会引入我的主样式表的重复,可接受。

1 个答案:

答案 0 :(得分:0)

所以,你看待它的方式似乎是临时的。事实上,为什么不以编程方式确定哪个样式表开始呈现,而不是添加或删除样式表?构建一个简单的用户控件,用于检查确定添加哪些css文件的参数。如果你愿意的话,你也可以覆盖主题引擎(我不确定哪个类是我的头脑,但我确定它在msdn上)。最后一个解决方案是用javascript做客户端,虽然webforms中的javascript可能很痛苦。

ASP.NET生命周期事件: http://www.biotransfer.ca/portfolio/McGill-MUHC/aspnet-life-cycles-events.pdf

以编程方式设置主题: http://msdn.microsoft.com/en-us/library/ms366514%28v=VS.100%29.aspx