C# 以编程方式操作页面主题

C# 以编程方式操作页面主题,c#,asp.net,webforms,asp.net-3.5,themes,C#,Asp.net,Webforms,Asp.net 3.5,Themes,我的主题中有以下设置: \App\u Themes\Default\StyleSheet.css \App\u Themes\Default\PrintStyleSheet.css PrintStyleSheet.css文件中有一组打印css规则集,它们被包装在@Media Print{}块中 我需要一种方法,根据一些标志,以编程方式从ASP.NET要注入的css文件列表中删除PrintStyleSheet.css。在某些情况下,我们希望不使用自定义格式逐字打印站点 我知道我可以在没有Print

我的主题中有以下设置:

\App\u Themes\Default\StyleSheet.css \App\u Themes\Default\PrintStyleSheet.css PrintStyleSheet.css文件中有一组打印css规则集,它们被包装在@Media Print{}块中

我需要一种方法,根据一些标志,以编程方式从ASP.NET要注入的css文件列表中删除PrintStyleSheet.css。在某些情况下,我们希望不使用自定义格式逐字打印站点


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

因此,您看待它的方式似乎是特别的。与其在事件发生后添加或删除样式表,为什么不以编程方式确定首先呈现哪个样式表呢?构建一个简单的用户控件,用于检查决定添加哪些css文件的参数。你也可以覆盖主题引擎,我不确定这是什么类,但我相信它在msdn上,如果你想的话。最后一个解决方案是在客户端使用javascript,尽管webforms中的javascript可能会很麻烦

ASP.NET生命周期事件:

以编程方式设置主题:

那么你的建议是抛弃主题系统,只做我自己的标签?