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”(样式类的名称),如果值为YI喜欢使用“history-table-row-error”(样式类的名称) )。所有其他情况应使用默认值。

我想我必须以某种方式将当前的条目对象获取到我的 bean,对其进行分析并将带有 stylclass 名称的字符串返回到 outputText 以更改颜色。但我不知道如何......(我是 JSF 的新手......)

有人能帮助我吗?

4

2 回答 2

12

使用 的rowStyleClass属性<t:dataTable>而不是rowClasses。是在可用的rowStyleClass每行基础上评估的var="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 回答