我想根据状态列更改行的颜色。我在primefaces网站上看过这个例子
http://www.primefaces.org/showcase/ui/datatableColoring.jsf
并在网上查找了一些例子,但我似乎无法让它与我的代码一起工作。问题是它突出显示了所有内容,而不仅仅是状态设置为"Closed"的行
这是我的代码
<p:dataTable id="ComplaintTable" var="complainer"
rowKey="#{complainer.id}"
selection="#{bigComplaintsDAO.selectedComplaintRow}"
widgetVar="complaintsTableSearch"
paginator="True" rows="15"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="15,20,30,40,50,100"
resizableColumns="true"
filteredValue="#{bigComplaintsDAO.filteredComplaintRow}"
selectionMode="single" value="#{bigComplaintsDAO.complaintList}"
style="font-size:10px;width:100%;"
rowStyleClass="#{(complaint.status) eq Closed ? 'Closed' : null}">
和CSS
<style type="text/css">
.Closed
{
background-color: #6CE26C !important;
background-image: none !important;
color: #000000 !important;
}
</style>
解决了它!我将代码更改为
rowStyleClass="#{(complainer.status) eq 'Closed' ? 'Closed' : null}"
希望这能在未来帮助其他人!
在我的例子中,如果数据表放在p:panelGrid中,rowStyleClass就不起作用。我切换到一个p:面板,然后它就工作了。
对我来说,以下代码有效:
数据表(HTML)
<p-dataTable [rowStyleClass]="getRowClass">
组件(TS)
getRowClass() {
return 'my-new-class';
}