2012-07-02 294 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函數嗎? –