在asp.net中动态加载CSS元素

时间:2011-08-26 15:06:06

标签: asp.net css sql-server vb.net

我搜索谷歌和SO,但没有找到解决方案。

我有一个asp.net网络应用程序,允许用户自定义一些GUI方面(如字体颜色,添加自定义徽标等)。此信息存储在用户配置文件数据库中。

我有一个填充字体颜色等的css文件。主页面从数据库加载用户配置文件,并相应地自定义页面。

除了让每个标签都有自己的“font-color =”之外,如何根据从数据库返回的用户配置文件信息显示CSS元素? THX

3 个答案:

答案 0 :(得分:4)

您可以添加一个指向ASPX页面的额外CSS文件:

<link rel="stylesheet" type="text/css" href="/CustomStyles.aspx" />

然后在CustomStyles.aspx中更改默认内容类型:

Response.Clear()
Response.ContentType = "text/css"

然后开始输出你的风格:

Response.Write("#awesome-button{color:" & ColorFromDatabase & ";}"

确保此文件包含在其他样式之后,以使其优先。你也可能想在那里抛出一个!IMPORTANT

Response.Write("#awesome-button{color:" & ColorFromDatabase & " !IMPORTANT;}"

答案 1 :(得分:2)

这取决于您如何存储信息,但您可以通过以下代码为元素添加样式:

Button1.Style["font-weight"] = "bold";

或者您可以将CSS类应用于控件:

Button1.CssClass = "buttonStyle";

答案 2 :(得分:2)

您可以拥有一个页面,它只根据存储在数据库中的首选项返回一个CSS文件。所以你会:

<link rel="stylesheet" href="somepage.aspx?userid=<%=userID%>">

你甚至可以通过经典的ASP页面,网络服务等轻松地做到这一点。

关键是该页面将生成相同的基本样式表,填写用户选择的正确颜色等。这样,您不必在页面加载后在服务器端或客户端代码中执行一系列样式更改,或者将您的用户首选项代码与HTML混合,或者如果您需要更改基页更改样式表的工作方式。它还可以在测试网站本身之外测试样式表。