我正在使用datatable
,并且表中的每个row
应根据行StatutTicket
的某个属性的值具有不同的颜色
这是我的代码视图:
<p:dataTable id="dataTickets" var="ticket"
rowStyleClass="#{ticket.statutTicket.libelleStatutTicket == 'En attente' ? 'background-color:red': 'background-color:red'}"
value="#{ticketBean.tickets}">
<p:column headerText="N Ticket" sortBy="#{ticket.idTicket}"
filterBy="#{ticket.idTicket}">
<h:outputText value="#{ticket.idTicket}" />
</p:column>
<p:column headerText="Statut Ticket">
<h:outputText value="#{ticket.statutTicket.libelleStatutTicket}" />
</p:column>
</p:dataTable>
但是列的颜色仍然没有改变,错误没有出现
答案 0 :(得分:1)
实际上rowStyleClass
属性接受css
类型而非直接使用
rowStyleClass="#{ticket.statutTicket.libelleStatutTicket eq 'En attente' ? 'background-color:red': 'background-color:red'}"
使用类似的东西。
rowIndexVar="rowIndex"
rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'redClass': 'blueClass'}"
并在css
文件中添加此类,以便连续两行有两种不同的颜色。
.redClass {
background-color:red;
}
.blueClass {
background-color:red;
}
答案 1 :(得分:0)
尝试使用eq
代替==
比较字符串。
或者考虑使用backing bean来确定styleClass
,例如:
rowStyleClass="#{ticketBean.styleClass(ticket)}"
答案 2 :(得分:0)
这对我有用。
.rowWarnning {
background-color: #FF9933 !important;
background-image: none !important;
color: #000000 !important;
}
<p:dataTable id="dataTickets" var="ticket"
rowStyleClass="#{ticket.statutTicket.libelleStatutTicket == 'En attente' ? 'rowWarnning': null}"
value="#{ticketBean.tickets}">