根据JSF 2中的条件为数据表行着色

时间:2012-01-05 15:26:42

标签: jsf-2 tomahawk

我想根据条件更改行的背景颜色。

<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”( styleclass的名字)。所有其他情况应使用默认值。

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

有人能帮助我吗?

2 个答案:

答案 0 :(得分:12)

使用rowStyleClass的{​​{1}}属性代替<t:dataTable>rowClasses基于每行进行评估,其中rowStyleClass可用,而var="entry"仅基于每个表进行评估。

rowClasses

答案 1 :(得分:-1)

您可以使用JSF EL Ternary运算符,如下所示:

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