DataTable Primefaces

4 respostas
Jr_webmaster_100_jav

ola galera tudo bem ?

Tenho a seguinte situacao:

no meu datatable listo todos os lancamentos do contas a pagar.
preciso fazer o seguinte

pintar de azul os que vencem no dia atual
pintar de vermelho os vencidos
pintar de preto os que vao vencer
printar de verde os liquidados

consegui fazer somente um no casa o verde.

<p:dataTable var="ctpg" value="#{contasPagarDAO.model}" id="lista"
					 selection="#{contasPagarDAO.contasSelecionadas}"
					 style="text-align:center;" paginator="true"
					rows="20"
					paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
					rowsPerPageTemplate="5,10,15,20"
					rowStyleClass="#{ctpg.valorPagamento ne 0.0 ? 'baixado' : null}">

veja que no rowStyleClass uso um EL para fazer a verificacao
mas como vou fazer varias verificacoes para definir as demais cores ?

desde ja agradeco.

Atenciosamente

4 Respostas

lele_vader

Porque você não faz um bean que retorne o nome da classe e daí coloca no rowStyleClass.

Acho que no próprio site de lá tem um exemplo assim, ou eu vi em um livro.

M

rowStyleClass="#{ctpg.valorPagamento ne 0.0 ? ‘baixado’ : null or ctpg.valorPagamento ne 0.0 ? ‘vencido’ : null or …}">

Y

Acho que no próprio site de lá tem um exemplo assim, ou eu vi em um livro.

V

Aqui vai um exemplo. Tem que lembrar de linkar o arquivo css :

&lt;p:dataTable id="clientes" var="cli" value="#{clienteBean.mediumClienteCgc}" 
                                         selectionMode="single" selection="#{clienteBean.clienteSelecionado}" 
                                         rowStyleClass="#{cli.saldoEmAtraso gt 0 ? 'vermelho' : cli.saldoEmAberto le 0 ? 'verde' : 'amarelo' }"  &gt;

Já no arquivo css foi adicionado:

.verde {
    color: #00FF00;
    background-color: #000000;
    background-image: none;
}
    
.amarelo {
    color: #FFFF66;
    background-color: #000000;
    background-image: none;
}

.vermelho {
    color: #FF0000;
    background-color: #000000;
    background-image: none;
}
Criado 15 de junho de 2012
Ultima resposta 28 de jun. de 2012
Respostas 4
Participantes 5