2012-11-03 91 views
0

更改某些selectItem的樣式在我的xhtml頁面中,我使用了一個<h:selectOneMenu>組件。爲了填充數據,我在組件內使用<s:selectItems>組件。我需要的是有條件地改變某個selectItem的風格。有沒有可能或有其他方法?
舉個例子,我需要改變一個選項的顏色,如果它的標籤是'鉛筆'。
我正在使用jboss-seam和命名空間's'是指接縫標記庫。<h:selectOneMenu

<h:selectOneMenu value="#{bean.selectedItem}" id="myCombo"> 
    <f:selectItem itemLabel="-Please select-" itemValue=""/> 
    <s:selectItems value="#{bean.items}" var="item" label="#{item.name}" itemValue="#{item}"/> 
</h:selectOneMenu> 
+0

檢查生成的HTML輸出,將其複製並嘗試在純HTML代碼中相應地進行編輯,以便獲得所需的結果。然後詢問如何將所需的HTML輸出完全移植回JSF。我敢打賭,你已經在純粹的HTML方面得到了正確的結果(至少,當你想要一些比改變選項顏色更復雜的選項時,以及當你想讓它在所有瀏覽器中都能正常工作時)。那麼你應該認識到,在JSF中實現這種功能是不可能的 - 它基本上是一個HTML代碼生成器。 – BalusC

+0

嗯..好主意。我會盡力。 – prageeth

回答

0

我找到了javascript的替代方法。我的js代碼是這樣的。然而,這只是一個簡化的代碼,它顯示了這個概念。

<script>  
    window.onload = function() { 
    var options = document.getElementById("myForm:myCombo").options; 
    for(var i = 0; i &lt; options.length; i++) { 
     if(options[i].innerHTML == 'pencil') { 
     options[i].style.color = 'red'; 
     } 
    } 
    } 
</script> 
相關問題