【问题标题】:Dynamically loading CSS elements in asp.net在 asp.net 中动态加载 CSS 元素
【发布时间】:2011-11-04 15:00:48
【问题描述】:

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

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

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

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

【问题讨论】:

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


【解决方案1】:

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

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

然后在CustomStyles.aspx更改默认的content-type:

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

然后开始输出你的样式:

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

确保此文件包含在其他样式之后,以便优先。您可能还想在其中扔一个!IMPORTANT

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

【讨论】:

  • +1 哇,我认为我们已经死了。我想我以前从未见过“0 秒内回答”! yfrog.com/j2ojtp
  • 你知道一个枚举或官方包装器,以避免硬编码或无效颜色吗?在 ASP.NET MVC 项目中使用任何有意义的东西。
【解决方案2】:

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

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

或者你可以只对控件应用一个 CSS 类:

Button1.CssClass = "buttonStyle";

【讨论】:

    【解决方案3】:

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

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

    您甚至可以使用经典的 ASP 页面、Web 服务等轻松做到这一点。

    关键是该页面将生成相同的基本样式表,填充用户选择的正确颜色等。这样,您不必在页面加载后在服务器端或客户端代码中执行大量样式更改,或者将您的用户偏好代码与您的 HTML 混合,或者根据需要对基本页面进行大量更改更改样式表的工作方式。除了测试网站本身之外,它还可以轻松测试样式表。

    【讨论】:

      猜你喜欢
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      • 2013-05-08
      • 2015-06-16
      相关资源
      最近更新 更多