2017-03-24 12 views
0

私はstackoverflowの新しいメンバーですが、これは最初の問題ですから、修正できないようです。f:selectitemの一部の項目の背景色を1つの色で塗りつぶすことは可能ですか?

質問はおそらく不明ですが、ここに私の問題があります。バックエンドアプリケーションでは、JSFを使用します。 これで、自動的に塗りつぶされたselectItemsを持つselectOneMenu(DatabaseServers)が追加されましたが、新しい属性(boolean full)が追加されました。今度は、フルデータベースの背景色を赤と完全ではないデータベースは緑色で表示されます。

<p:outputLabel for="emrDatabaseServer" 
         value="#{msg['tenants.label.emrDatabase']}" /> 
        <p:selectOneMenu id="emrDatabaseServer" style="width:250px;" 
         value="#{tenantController.entity.emrDatabaseServer}" 
         effect="fade" required="true" 
         converter="#{databaseServerConverter}"> 
         <f:selectItem itemLabel="Select One" itemValue="" /> 
         <f:selectItems value="#{tenantController.emrDatabaseServers}" 
          var="emrDB" 
          itemLabel="#{emrDB.name} (#{emrDB.host}:#{emrDB.port}) (#{emrDB.nbDatabases} dbs)" 
          itemValue="#{emrDB}" /> 
         <p:ajax event="change" 
          listener="#{tenantController.onValueChange}" update="save" /> 
        </p:selectOneMenu> 

私は無数のものを試しましたが、うまくいかないようです。

他のパッケージなどのコードを使用するオプションはありません。 select -elementの

答えて

0

スタイリングオプションhereが記載されているように、クリーン、クロスブラウザ互換性のある方法では不可能です。

しかし、あなたのスタイリング要件を満たすハックを使用する場合、<f:selectItem> respにはまたはstyleClassという属性はありません。 <f:selectItems>。この問題では、this anser(スタイルの代わりにtitle-attributeを使用していますが、そのアイデアがあります)で説明されているように、パススルー属性を使用してみることができます。

しかし、あなたがしようとしていることは大きなハックを招き、避けるべきです。

関連する問題