2012-07-02 239 views
0

我有一个从ebean中获取的隐藏属性。如何将该颜色代码属性传递给css函数?从panelgrid动态传递CSS属性

<h:panelGrid id="testpanel" 
     columns="#{message.no_of_columns}" rows="#{message.no_of_rows}" 
     styleClass="dynamicGrid"> 
    <c:forEach items="#{bLDashBoardAction.listBondLoc}" var="item"> 
     <h:panelGroup>             <h:outputText value="#{item.rackTagCode}" /> 
    <h:hiddenInput value="#{item.colorEBean.colorCode};" /> 
              </h:panelGroup> 
</c:forEach> 
</h:panelGrid> 

,这是我的CSS属性,背景需要从panelGrid中的ColorCode

.dynamicGrid td 
{ 
width: 50px; 
height: 50px; 
border: 4px solid gray; 
    background: 

} 
分配
+0

为什么你要将CSS颜色代码存储在数据库中而不是CSS文件中?这使得所有这些都不必要地过于复杂。 – BalusC

+0

嗨BalusC,这是每个盒子的颜色可以由用户配置的要求之一。我仍然无法完成它。有没有其他方法可以做到这一点?我尝试丹尼尔的方式,但无法得到结果。 –

+0

你为什么不直接在数据库中存储CSS类名? – BalusC

回答

1

正如你受限于奇怪的设计,你最好的选择是直接将样式应用于单元格的内容。

<h:outputText value="#{item.rackTagCode}" style="display:block;color:#{item.colorEBean.colorCode};" /> 

display:block将使它跨越整个单元格。

+0

感谢百万baluC.it以你的方式工作 –

1

不要以为你可以从JSF传递到CSS,你可以创建多个班级,预定义的背景颜色,像.dynamicGridRed.dynamicGridYellow

,并呼吁他们有条件styleClass="#{item.colorEBean.colorCode}" wher的ColorCode可以返回dynamicGridReddynamicGridYellow

或类似

styleClass="#{item.colorEBean.useRedCode?'dynamicGridRed':'dynamicGridYellow'}" 

另一种选择是使用内联CSS,如:

style="width: 50px;height: 50px;border: 4px solid gray;background:#{item.colorEBean.colorCode}" 

INMO,你最好不要尝试操作的CSS的内容,只是做了一堆预定义的CSS班...

,但我不是一个CSS亲,所以我可能是错

+0

感谢reply.do我需要覆盖css属性类吗?对不起有点困惑 –

+0

编辑我的答案... – Daniel

+0

谢谢你。内联不起作用.i已经创建了一堆预定义的CSS类。我应该引用该属性吗?我应该使用JavaScript函数吗? –