PrimeFaces DataTable Problema ao selecionar quando utilizado sortBy

2 respostas
D

Bom dia galera,
Estou com um problema que está me tirando noites de sono. Estou desenvolvendo um sistema web em Java, utilizando o framework primefaces versão 5.3 na camada de visão. Pois bem o sistema é composto basicamente de cadastros e consultas, cada pagina de consulta eu possuo um dataTable do primefaces, nele eu habilitei algumas funções como sortBy pra eu conseguir ordenar a tabela por campo especifico. Nessa mesma tabela criei uma ultima coluna com três p:commandButton um para visualizar detalhes do registro , outro para editar o mesmo(Envio o registro para a pagina de cadastro com o objeto já preenchido), e outro para excluir. Todos funcionam como o esperado , mas quando eu clico em uma coluna para mudar a ordenação e tento editar um registro, o objeto enviado para a tela de edição é diferente do que selecionei na tela anterior da datatable. Já procurei em tudo que é lugar uma solução para isso , aparentemente quando mudamos a ordenação na dataTable isso é feito só visualmente pois os objetos continuam na mesma sequencia.

Quero agradecer desde então e vou ficar muito grato se conseguirem me ajudar hehehe !

2 Respostas

fabioqb

Qual o problema/duvida?

D

Desculpa não percebi que estava incompleto. Mas o problema é quando utilizo a ordenação própria do dataTable do PrimeFaces e tento editar um registro , o mesmo é diferente daquele que selecionei na tela datatable. Segue abaixo o código :

<p:column headerText="#{msg['dataTable.column.codigo.headerText']}" width="10%" sortBy="#{estado.idEstado}">
                <h:outputText value="#{estado.idEstado}" />
            </p:column>

            <p:column headerText="#{msg['estado.consultar.nome']}" sortBy="#{estado.nome}">
                <h:outputText value="#{estado.nome}"/>
            </p:column>

            <p:column headerText="#{msg['estado.consultar.sigla']}" sortBy="#{estado.sigla}" >
                <h:outputText value="#{estado.sigla}" />
            </p:column>

            <p:column headerText="#{msg['dataTable.column.acoes.headerText']}" width="10%" style="text-align: center;" >

                <p:commandButton id="estado#{estado.idEstado}" icon="fa fa-search" title="#{msg['dataTable.botao.visualizar']}"
                                 rendered="#{consultarEstadoMBean.renderizarBotaoVisualizar()}"
                                 onclick="widgetVar_dialogVisualizar.show();"
                                 actionListener="#{consultarEstadoMBean.visualizar(estado)}"/>

                <p:commandButton id="estado#{estado.idEstado}" title="#{msg['dataTable.botao.editar']}" icon="fa fa-edit"
                                 rendered="#{consultarEstadoMBean.renderizarBotaoEditar()}"
                                 action="#{manterEstadoMBean.editar(estado)}"/>

                <p:commandButton title="#{msg['dataTable.botao.deletar']}" icon="fa fa-trash"
                                 rendered="#{consultarEstadoMBean.renderizarBotaoDeletar()}"
                                 update="@widgetVar(widgetVar_dataTable)"
                                 action="#{consultarEstadoMBean.deletar(estado)}"
                                 oncomplete="popAprovar.hide(); #{consultarEstadoMBean.listaEstados}">
                    <p:confirm header="#{msg['estado.consultar.deletar.confirm.header']}" 
                               message="#{msg['estado.consultar.deletar.confirm.message']}" icon="fa fa-warning" />
                </p:commandButton>

            </
Criado 24 de fevereiro de 2016
Ultima resposta 24 de fev. de 2016
Respostas 2
Participantes 2