我想根据条件更改行的背景颜色。
<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的新人......)
有人能帮助我吗?
答案 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')}"