提问人:sammarcow 提问时间:4/26/2011 更新时间:4/27/2011 访问量:228
基于服务器控件动态加载样式表
Dynamically loading style sheets based on Server Controls
问:
我有一个网站,需要根据模型加载基本样式组件(根据用户输入在后端 SQL Server 上确定)
这个概念是,这个网站可以包含参数化的外观和感觉组件,这些组件是根据登录页面预定义的。
任何人都能提供如何实现这一目标的基本想法或示例吗?一个想法是将样式参数存储在数据库中,但是样式表如何提取它。另一个想法是让这些预定义的样式表对应于登陆页面,但这需要一个服务器控件,并且我们无法在链接样式表中实现这一点。
答:
0赞
Gregory A Beamer
4/27/2011
#1
样式表不能从数据库中提取,但您当然可以创建一个处理程序来提供 CSS 文件,而不是指向物理 CSS 文件。
然而,这里更大的问题更像是一个商业问题。在编码之前,您必须弄清楚控件或布局到 CSS 文件的映射。如果你不这样做,我几乎可以保证,当你的系统无法处理需求时,你会在路上遇到一些痛苦。如果您不想太痛苦,请提前进行设计工作。
现在,回到这个问题。“基于着陆页”?您的意思是不同的用户点击不同的登录页面吗?如果是这样,可以将样式应用于模板(ASP.NET 简单),或者您可以创建自定义配置文件提供程序以将样式与用户结合。我会仔细考虑这些选择。将文件存储为文件或存储在数据库中是一个单独的问题。
评论
0赞
sammarcow
4/27/2011
您能解释一下“serve up”的用法吗 这个解决方案真的会把文件写到服务器,还是只是提供文本信息,你能提供参考吗?我同意这更像是一个设计问题。一个快速的解决方案是:在aspx中使用以下代码:'<link id=“myCSS” rel=“stylesheet” type=“text/css” runat=“server” />' 在代码后面使用'myCSS.Attributes.Add(“href”, “MyStyleFile.css”);在代码后面,MyStyleFile是从存储在cookie中的数据中提取的动态参数。CSS 样式由第三方提供,以向多个客户提供 1 个网站和品牌。
0赞
Gregory A Beamer
4/27/2011
有多种方法可以解决这个问题,具体取决于您的要求。您可以拥有 CSS 文件并动态决定设置的内容。这可以通过以编程方式更改链接标记或使用 HTTP 处理程序(自定义 AXD 文件)并以这种方式提供它来完成。Microsoft 在他们的一些代码中使用了后者。
评论