行颜色jsf primeFaces

时间:2014-10-15 17:26:01

标签: jsf primefaces

我正在使用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>

但是列的颜色仍然没有改变,错误没有出现

3 个答案:

答案 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}">