Mudança de cor em datatable jsf

5 respostas
V

Olá pessoal.

Não sei se é nessa parte do fórum que coloca essa duvida. Se não for peço desculpas.

A duvida é o seguinte:

Estou fazendo um sistema de controle de estoque utilizando jsf e primefaces. Eu quero mudar a cor da linha de um datatable quando a quantidade do estoque tiver chegando próximo ao mínimo permitido no estoque. Eu não sei como posso fazer isso.

Aguardo sugestões.

Abraços.

5 Respostas

R

Olá Vinicius, crie um método no seu Bean que retorne uma String com o estilo de acordo com a condição necessária e invoque esse método no style das suas colunas do datatable.

V

Então rafadelnero, nunca fiz isso. Mas criei esse método no meu bean:

public String verificarEstoque(){
        if(produto.getQuantidade() <= produto.getMinestoque()){
            return "red";
        }
        return null;
    }

E a minha datatable está assim:

<p:dataTable id="tabela" selectionMode="single" selection="#{produtoBean.produto}" rowKey="#{prod.id}" value="#{produtoBean.produtos}" var="prod" emptyMessage="Nenhum registro incluido." paginator="true" rows="10" style="#{produtoBean.verificarEstoque}">
                    <f:facet name="header">
                        LISTA DE PRODUTOS
                    </f:facet>
                    <p:column headerText="NOME" style="text-align: center">
                        <h:outputText value="#{prod.nome}"/>
                    </p:column>
                    <p:column headerText="QUANTIDADE" style="text-align: center">
                        <h:outputText value="#{prod.quantidade}" />
                    </p:column>
                    <p:column headerText="PREÇO DE COMPRA" style="text-align: center">
                        <h:outputText value="#{prod.precocompra}" />
                    </p:column>
                    <p:column headerText="PREÇO DE VENDA" style="text-align: center">
                        <h:outputText value="#{prod.precovenda}" />
                    </p:column>
                    <p:column headerText="ALTERAR - EXCLUIR" style="text-align: center">
                        <p:commandButton action="#{produtoBean.recuperarProduto}" value="EDITAR" title="Editar" onclick="PF('alterarProduto').show();" update=":formAlterarProduto" icon="ui-icon-pencil">
                            <f:setPropertyActionListener target="#{produtoBean.produto}" value="#{prod}"/>
                        </p:commandButton>
                        <p:commandButton value="EXCLUIR" title="Excluir" onclick="PF('confirmation').show();" style="margin-left: 5px" icon="ui-icon-trash">
                            <f:setPropertyActionListener value="#{prod}" target="#{produtoBean.produto}" />
                        </p:commandButton>
                    </p:column>
                </p:dataTable>

Queria saber se o método está correto e se a forma de chamar o método no style está correto.

Att.

A

Estou querendo a mesma coisa… E aí, resolveu ?

W

@ViniciusGallo, eu não sei se estás fazendo um projeto de faculdade ou é para o cliente, mas saiba de uma coisa, tentar realizar certo tipos de alterações como essa é como procurar uma brica que nunca vai ser ganha, sugiro fortemente mudar de frameworks ou se sujeitar a Templates pagos disponíveis pela Primefaces.

U

Tente utilizar a propriedade rowStyleClass do datatable,

Criado 3 de fevereiro de 2015
Ultima resposta 18 de fev. de 2017
Respostas 5
Participantes 5