Раскрасить строки с данными на основе условия в JSF 2 - PullRequest
6 голосов
/ 05 января 2012

Я бы хотел изменить цвет фона строк в зависимости от условия.

<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» (имя styleclass), если значение YI, использовать значение «history-table-row-error» ( название стиля) Во всех остальных случаях следует использовать значение по умолчанию.

Полагаю, мне нужно каким-то образом получить текущий объект ввода в мой bean-компонент, проанализировать его и вернуть строку с именем стилевого класса в outputText, чтобы изменить цвет. Но я не знаю, как ... (Я новичок в JSF ...)

Может кто-нибудь помочь мне, пожалуйста?

Ответы [ 2 ]

12 голосов
/ 05 января 2012

Используйте атрибут rowStyleClass <t:dataTable> вместо rowClasses.rowStyleClass оценивается для каждой строки, где доступно var="entry", а rowClasses оценивается только для каждой таблицы.

0 голосов
/ 05 января 2012

Вы можете использовать тройной оператор JSF EL, как показано ниже:

rowStyleClass="#{entry.action eq X ? 'history-table-row-incomplete' :  (entry.action eq Y ? 'history-table-row-error' : 'default')}"
...