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