6

条件に応じて行の背景色を変更したいのですが。

<t:dataTable id="data"
                styleClass="history-table"
                headerClass="history-table-header"
                rowClasses="history-table-row-default"
                border="2" cellpadding="5" cellspacing="2"
                var="entry"
                value="#{historyBean.logEntryList}"
                preserveDataModel="false"
                rows="#{historyBean.history.rowCount}"
                sortable="true">

           <h:column>
               <f:facet name="header">
                 <h:outputText value="Debug Status" />
               </f:facet>
               <h:outputText value="#{entry.action}" />
           </h:column>

「entry.action」の値がXIの場合、「history-table-row-incomplete」(スタイルクラスの名前)を使用します。値がYの場合、「history-table-row-error」(スタイルクラスの名前)を使用します。 )。他のすべての場合は、デフォルト値を使用する必要があります。

どういうわけか、現在のエントリのオブジェクトをBeanに取得し、それを分析して、色を変更するために、stylclassの名前の文字列をoutputTextに返す必要があると思います。しかし、方法がわかりません...(私はJSFの初心者です...)

誰かが私を助けてくれますか?

4

2 に答える 2

12

の代わりにのrowStyleClass属性を使用してください。が利用可能な場合、は行ごとに評価されますが、はテーブルごとにのみ評価されます。<t:dataTable>rowClassesrowStyleClassvar="entry"rowClasses

<t:dataTable ... rowStyleClass="#{entry.action == 'X' ? 'history-table-row-incomplete' : (entry.action == 'Y' ? 'history-table-row-error' : 'history-table-row-default')}">
于 2012-01-05T15:37:44.963 に答える
-2

JSF EL三項演算子は、次のように使用できます。

rowStyleClass="#{entry.action eq X ? 'history-table-row-incomplete' :  (entry.action eq Y ? 'history-table-row-error' : 'default')}"
于 2012-01-05T15:39:44.043 に答える