我想通过使用存储在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
定义,因此维护更容易。这是我的完整代码(减去不相关的元素):
<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>
答案 0 :(得分:1)
有一种解决方法:
使用:(使用#
)
background-color: <%# Resources.ItemList.NeedsSupportColor %> ;
并在page_load中执行:
this.DataBind()
但我必须说你在那里做错了什么。 (向我们展示完整代码)
答案 1 :(得分:1)
显然,在服务器(<% %>
)上运行时,您无法在<head>
内使用<head runat="server">
。 (here's another reference)。
您可以执行的操作是在客户端运行,或将<style>
部分向下移动到<body>
。