Bernad Ali
Bernad Ali

Reputation: 1729

Pass CSS property dynamically from panelgrid

I have a hidden property which is fetched from ebean. how do i pass that color code property to css function?

    <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>

this is my css property,background need to be assigned from panelgrid colorcode

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

}

Upvotes: 0

Views: 1149

Answers (2)

BalusC
BalusC

Reputation: 1108682

As you're restricted by strange design, your best bet is really to apply the style directly on the cell's content instead.

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

The display:block will make it to span the entire cell.

Upvotes: 1

Daniel
Daniel

Reputation: 37051

Don't think you can pass from JSF to css , you can create several classes with predefined background color , like .dynamicGridRed and .dynamicGridYellow

and call them conditionally styleClass="#{item.colorEBean.colorCode}" wher colorCode can return dynamicGridRed or dynamicGridYellow

or something like

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

another option would be use inline css like:

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

INMO , you better not try to manipulate the content of css, just make a bunch of predefined css classes...

but I'm not a css pro , so i might be wrong

Upvotes: 1

Related Questions