使用CSS

时间:2015-05-19 07:13:38

标签: css asp.net

我想通过使用存储在background-color文件中的值来定义元素的resource (resx)。我愿意在CSS页面中编写aspx的特定部分,而不是在外部CSS文件中。

我尝试使用<%= %>表示法和<%# %>表示法。然而,他们中的一员工作:

当我尝试使用<%= %>时:

.lblHolisticStatus{
    background-color: <%= Resources.ItemList.NeedsSupportColor %> ;
}

我收到错误:

The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

当我尝试使用<%# %>时:

.lblHolisticStatus{
    background-color: <%# Resources.ItemList.NeedsSupportColor %> ;
}

我没有收到错误,但也没有错误。这就是我在页面的视图源中看到它的方式:

.lblHolisticStatus{
    background-color:  ;
}

我宁愿不做的解决方案:

  • 我不想在后面的代码中定义background-color,因为我希望在CSS中完成CSS定义,因此维护更容易。
  • 为包含背景颜色的元素分配不同的css类无济于事,因为我仍然需要在CSS中定义背景颜色。我仍然想要使用资源文件中的值...

这是我的完整代码(减去不相关的元素):

<head runat="server">
    <style>
        .lblHolisticStatus{
            float:left;
            font-size:1.7rem;
            color:#fff;
            padding: 1rem 2.5rem;
            background-color: <%# Resources.ItemList.NeedsSupportColor %> ;
        }
    </style>
</head>
<body>
    <div class="categoryStatus cf">
        <span class="lblHolisticCategory">
            <%=CategoryName ?? Resources.ItemList.DataNotFound %>
        </span>
        <span class="lblHolisticStatus cls<%= ((eStatus)Type).ToString()%>">
            <%=GetGlobalResourceObject("ItemList", char.ToUpper(((eStatus)Type).ToString()[0]) + ((eStatus)Type).ToString().Substring(1))%>
        </span>
    </div>
</body>

2 个答案:

答案 0 :(得分:1)

有一种解决方法:

使用:(使用#

 background-color: <%# Resources.ItemList.NeedsSupportColor %> ;

并在page_load中执行:

this.DataBind()

但我必须说你在那里做错了什么。 (向我们展示完整代码)

答案 1 :(得分:1)

显然,在服务器(<% %>)上运行时,您无法在<head>内使用<head runat="server">。 (here's another reference)。 您可以执行的操作是在客户端运行,或将<style>部分向下移动到<body>