JSF数据表基于条件[重复]着色一行

问题描述 投票:0回答:1

如果国家/地区列的文本是“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;
}

我无法实现一行是彩色的。

jsf datatable
1个回答
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}" ...>
© www.soinside.com 2019 - 2024. All rights reserved.