[RESOLVIDO]Problema ao excluir Registro

15 respostas
R

Boa tarde pessoal, tudo bem? Bem, na minha aplicação tenho um cadastro de tipo do Material. Nela, tenho alguns filtros e também posso excluir e alterar o cadastro.
Porém, quando clico em excluir, ele faz a exclusão do registro ok. Só que para eu fazer uma outra exclusão tenho que dar um F5 na página… Naõ sei o pq… Já fiz vários testes com update, refresh…Abaixo, parte do xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:treap="http://java.sun.com/jsf/composite/treap"
      xmlns:p="http://primefaces.org/ui">

    <head>
    </head>
    <body>
        <ui:composition template="./default_layout_with_menu.xhtml">
            <form id="form">
                <ui:define name="titulo-pagina">
                    Tipo do Material
                </ui:define>
                <ui:define name="content">
                    <treap:ajaxStatus/>
                    <p:tabView id="tab" activeIndex="#{tipoMaterialJsfBean.indiceAbaSelecionada}" widgetVar="tab1">

                        <p:tab title="Procura" id="tabList">
                            <p:panel header="Filtros de Consulta" id="parametros">
                                <p:growl id="grow1" life="4000"/>

                                <table border="0" cellpadding="2" cellspacing="0" style="margin-right: 40px">
                                    <h:panelGrid columns="2" width="100%">
                                        <h:panelGrid columns="2">
                                            <tr>
                                                <td align="right">Código:</td>
                                                <td>
                                                    <p:inputMask size="6" placeHolder=""  mask="9?9999" onfocus="this.value='';" value="#{tipoMaterialJsfBean.tipoCodigo}"/>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td align="right">Descrição:</td>
                                                <td>
                                                    <p:inputText size="20" style="width: 200%" onfocus="this.value='';" value="#{tipoMaterialJsfBean.tipoDescricao}"/>
                                                </td>
                                            </tr>
                                        </h:panelGrid>
                                    </h:panelGrid>
                                    <tr>
                                        <td>
                                            <p:defaultCommand target="BtnfiltraTipoMaterial" />
                                            <p:commandButton id="BtnfiltraTipoMaterial" actionListener="#{tipoMaterialJsfBean.atualizar()}" value="Consultar" update="tabela1" process="parametros" image="search"/>
                                            <treap:btnRelatorio disable="#{tipoMaterialJsfBean.verificaListaTipoMaterial()}" update="@form" metodo="#{tipoMaterialJsfBean.geraRelatorioTipoMaterialPDF()}"/>
                                        </td>
                                    </tr>
                                </table>
                            </p:panel>
                            <br/>

                            <p:dataTable id="tabela1"
                                         rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'even-row' : 'odd-row'}"
                                         rowIndexVar="rowIx"
                                         value="#{tipoMaterialJsfBean.tipoMaterialList}"
                                         var="item"
                                         emptyMessage="Nenhum registro encontrado."
                                         paginator="true"
                                         rows="10"
                                         pageLinks="5"
                                         paginatorPosition="bottom"
                                         paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink}
                                         {PageLinks} {NextPageLink} {LastPageLink} Exibir: {RowsPerPageDropdown}
                                         Encontrados: #{tipoMaterialJsfBean.tipoMaterialList.rowCount}"
                                         rowsPerPageTemplate="15,25,35,50"
                                         lazy="true">

                                <p:column headerText="Código" sortBy="#{item.tipoCodigo}" width="20">
                                    <h:outputText value="#{item.tipoCodigo}"/>
                                </p:column>

                                <p:column headerText="Descrição" sortBy="#{item.tipoDescricao}">
                                    <h:outputText value="#{item.tipoDescricao}" />
                                </p:column>

                                <p:column headerText="Ação" width="50">
                                    <treap:btnCrudEditar bean="#{tipoMaterialJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>
                                    <treap:btnCrudExcluir bean="#{tipoMaterialJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>
                                </p:column>
                            </p:dataTable>
                        </p:tab>
                    </p:tabView>
                </ui:define>
            </form>
        </ui:composition>
    </body>
</html>

Se alguém puder ajudar ou dar alguma idéia de como atualizar a página, para que assim eu consiga fazer a exclusão de mais de um registro sem precisar dar um F5, fico mto agradecido. Vlw

15 Respostas

ivandasilva

Troca

por

e vê se funciona

R

ivandasilva:
Troca

por

e vê se funciona


Ok, vou testar aki :slight_smile:

R

ivandasilva:
Troca

por

e vê se funciona


Cara, o único lugar que dou um update é no consultar e no Relatório. Infelizmente não deu certo, pq eu consigo EXCLUIR o registro, só que quando vou excluí-lo novamente, antes de CLICAR em exclur, tenho que DAR UM F5 na página… ALguma outra idéia? Vlw por ajudar…

ivandasilva

Como assim excluir um registro duas vezes ?

Quando vc exclui o registro a lista não é atualizada ?

E nos updates, ela é atualizada ?

R

ivandasilva:

Cara, o único lugar que dou um update é no consultar e no Relatório. Infelizmente não deu certo, pq eu consigo EXCLUIR o registro, só que quando vou excluí-lo novamente, antes de CLICAR em exclur, tenho que DAR UM F5 na página… ALguma outra idéia? Vlw por ajudar…

Como assim excluir um registro duas vezes ?

Quando vc exclui o registro a lista não é atualizada ?

E nos updates, ela é atualizada ?

Cara, desculpe… Me expressei mal…Assim ó: tudo está funcionado… Vamos supor que cliquei em Excluir…Blza (Exclui o registro). Agora vou excluir OUTRO registro… daí tenho que dar um F5 pq não está atualizando… Entendeu? Vlw pela ajuda…

R

Alguém mais poderia ajudar??

ivandasilva

Cara, foi malz… eu pedi para você atualizar no componente errado, ou seja, nada a ver… pelo que eu estou vendo o que faz a atualização aí é o

<treap:btnCrudExcluir bean="#{tipoMaterialJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>

que deve ser um componente customizado que vocês criaram, vê se este componente tem a opção de fazer requisições ajax

R

ivandasilva:
Cara, foi malz… eu pedi para você atualizar no componente errado, ou seja, nada a ver… pelo que eu estou vendo o que faz a atualização aí é o

<treap:btnCrudExcluir bean="#{tipoMaterialJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>

que deve ser um componente customizado que vocês criaram, vê se este componente tem a opção de fazer requisições ajax


posso te mandar o botão Excluir pra vc dar uma olhada?? Estou vendo isso agora inclusive…

R

ivandasilva:
Cara, foi malz… eu pedi para você atualizar no componente errado, ou seja, nada a ver… pelo que eu estou vendo o que faz a atualização aí é o

<treap:btnCrudExcluir bean="#{tipoMaterialJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>

que deve ser um componente customizado que vocês criaram, vê se este componente tem a opção de fazer requisições ajax

Esse é o botão Excluir:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:cc="http://java.sun.com/jsf/composite"
      xmlns:p="http://primefaces.org/ui">

    <!-- INTERFACE -->
    <cc:interface>
        <cc:attribute name="bean" required="true"/>
        <cc:attribute name="process" default="@this"/>
        <cc:attribute name="update" default="@form"/>
        <cc:attribute name="visivel"/>
    </cc:interface>

    <!-- IMPLEMENTATION -->
    <cc:implementation>
        <p:commandLink title="Excluir" action="#{cc.attrs.bean.excluiObj(item)}" update="#{cc.attrs.update}"
                       process="#{cc.attrs.process}" oncomplete="tab1.selectTab(0);"
                       onclick="if (confirm('#{msg.confirm_del}')!=true) return false"
                       rendered="#{cc.attrs.visivel == null ? true : cc.attrs.visivel}">
            <p:graphicImage value="/resources/img/icon/trash.gif" styleClass="icone_tabela"/>
        </p:commandLink>
    </cc:implementation>
</html>

Alguém mais poderia dar uma ajuda ae?? To precisando mesmo… Obrigado

ivandasilva

Vê se funciona com esse componente

<?xml version='1.0' encoding='UTF-8' ?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"  
      xmlns:cc="http://java.sun.com/jsf/composite"  
      xmlns:p="http://primefaces.org/ui">  
  
    <!-- INTERFACE -->  
    <cc:interface>  
        <cc:attribute name="bean" required="true"/>  
        <cc:attribute name="process" default="@this"/>  
        <cc:attribute name="update" default="@form"/>  
        <cc:attribute name="visivel"/>  
    </cc:interface>  
  
    <!-- IMPLEMENTATION -->  
    <cc:implementation>  
        <p:commandLink title="Excluir" action="#{cc.attrs.bean.excluiObj(item)}" update="@form"  
                       process="#{cc.attrs.process}" oncomplete="tab1.selectTab(0);"  
                       onclick="if (confirm('#{msg.confirm_del}')!=true) return false"  
                       rendered="#{cc.attrs.visivel == null ? true : cc.attrs.visivel}">  
            <p:graphicImage value="/resources/img/icon/trash.gif" styleClass="icone_tabela"/>  
        </p:commandLink>  
    </cc:implementation>  
</html>
R
ivandasilva:
Vê se funciona com esse componente
<?xml version='1.0' encoding='UTF-8' ?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"  
      xmlns:cc="http://java.sun.com/jsf/composite"  
      xmlns:p="http://primefaces.org/ui">  
  
    <!-- INTERFACE -->  
    <cc:interface>  
        <cc:attribute name="bean" required="true"/>  
        <cc:attribute name="process" default="@this"/>  
        <cc:attribute name="update" default="@form"/>  
        <cc:attribute name="visivel"/>  
    </cc:interface>  
  
    <!-- IMPLEMENTATION -->  
    <cc:implementation>  
        <p:commandLink title="Excluir" action="#{cc.attrs.bean.excluiObj(item)}" update="@form"  
                       process="#{cc.attrs.process}" oncomplete="tab1.selectTab(0);"  
                       onclick="if (confirm('#{msg.confirm_del}')!=true) return false"  
                       rendered="#{cc.attrs.visivel == null ? true : cc.attrs.visivel}">  
            <p:graphicImage value="/resources/img/icon/trash.gif" styleClass="icone_tabela"/>  
        </p:commandLink>  
    </cc:implementation>  
</html>
Vou testar aki.. Bem, na minha aplicação antiga tinha o seguinte código pra o Botão Excluir:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:cc="http://java.sun.com/jsf/composite"
      xmlns:p="http://primefaces.prime.com.tr/ui">

    <!-- INTERFACE -->
    <cc:interface>
        <cc:attribute name="bean" required="true"/>
        <cc:attribute name="process" default="@this"/>
        <cc:attribute name="update" default="tab"/>
        <cc:attribute name="visivel"/>
    </cc:interface>

    <!-- IMPLEMENTATION -->
    <cc:implementation>
        <p:commandLink title="Excluir" action="#{cc.attrs.bean.excluiObj(item)}" update="#{cc.attrs.update}" 
                       process="#{cc.attrs.process}" oncomplete="tab1.selectTab(0);" 
                       onclick="if (confirm('#{msg.confirm_del}')!=true) return false"
                       rendered="#{cc.attrs.visivel == null ? true : cc.attrs.visivel}">
            <p:graphicImage value="/resources/img/icon/trash.gif" styleClass="icone_tabela"/>
        </p:commandLink>
    </cc:implementation>
</html>

Como pode observar, só mudou do novo... Mas é essa "pequena" mudança que tá dando todo esse rolo. Mais uma vez, obrigado por estar ajudando, mas.. Se puder ajudar ainda, agradeço... :)

R
ivandasilva:
Vê se funciona com esse componente
<?xml version='1.0' encoding='UTF-8' ?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"  
      xmlns:cc="http://java.sun.com/jsf/composite"  
      xmlns:p="http://primefaces.org/ui">  
  
    <!-- INTERFACE -->  
    <cc:interface>  
        <cc:attribute name="bean" required="true"/>  
        <cc:attribute name="process" default="@this"/>  
        <cc:attribute name="update" default="@form"/>  
        <cc:attribute name="visivel"/>  
    </cc:interface>  
  
    <!-- IMPLEMENTATION -->  
    <cc:implementation>  
        <p:commandLink title="Excluir" action="#{cc.attrs.bean.excluiObj(item)}" update="@form"  
                       process="#{cc.attrs.process}" oncomplete="tab1.selectTab(0);"  
                       onclick="if (confirm('#{msg.confirm_del}')!=true) return false"  
                       rendered="#{cc.attrs.visivel == null ? true : cc.attrs.visivel}">  
            <p:graphicImage value="/resources/img/icon/trash.gif" styleClass="icone_tabela"/>  
        </p:commandLink>  
    </cc:implementation>  
</html>
Testei aqui mas não deu certo... Mais alguma idéia?? Vlw por estar ajudando cara :)
R

Alguém mais poderia dar uma mão ae?? Vlw

R

Estou trabalhando com a versão 3.5 do Primefaces, será que esse pode ser o problema? Pois a outra era 2.0 … Se alguém puder ajudar, agradeço mtooo. Vlw

R

problema resolvido: foi só tirar o oncomplete=“tab1.selectTab(0);” da implementação do botao. Valeu quem ajudou ae :slight_smile:

Criado 11 de abril de 2013
Ultima resposta 16 de abr. de 2013
Respostas 15
Participantes 2