JSF数据表基于条件着色

时间:2018-01-03 00:44:03

标签: jsf datatable

如果国家/地区列的文字是' UK',我想为一行数据表着色。这是我的XHTML文件:

 <h:dataTable value="#{personBean.persons}" var="p" 
    rowStyleClass="#{p.country eq 'UK' ? 'colored' : null}">

       <h:column >
            <f:facet name="header">Country</f:facet>
             "#{p.country}"
      </h:column>
 </h:dataTable>

这是我的CSS文件:

.colored {
   background-color: #cceeff;
   color: #FFFFFF;
}

我无法确定某一行是彩色的。

1 个答案:

答案 0 :(得分:0)

原生JSF h:dataTable不会按行计算rowStyleClass

它将在Primefaces p:dataTable中发生。

您可以做的另一个选择是在String处构建一个逗号分隔的ManagedBean样式类,并将其提供给rowStyleClass属性。

例如:
ManagedBean:

String rowStyles;
public void getRowStyles(){
    for(Person p: persons){
      rowStyles+=p.getCountry().equals("UK") ? "colored," : ",";
    }

    return rowStyles;
}

XHTML:

<h:dataTable rowStyleClass="#{personBean.rowStyles}" ...>
相关问题