从panelgrid动态传递CSS属性

时间:2012-07-02 18:00:11

标签: css jsf

我有一个从ebean获取的隐藏属性。我如何将该颜色代码属性传递给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:

}

2 个答案:

答案 0 :(得分:1)

不要认为你可以从JSF传递到css,你可以创建几个具有预定义背景颜色的类,如.dynamicGridRed.dynamicGridYellow

并有条件地调用它们styleClass="#{item.colorEBean.colorCode}"  我们的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 pro,所以我可能错了

答案 1 :(得分:1)

由于您受到奇怪设计的限制,您最好的选择是将样式直接应用于单元格的内容。

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

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