[RESOLVIDO]Problema ao excluir Registro

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

Troca

por

e vê se funciona

[quote=ivandasilva]Troca

por

e vê se funciona[/quote]
Ok, vou testar aki :slight_smile:

[quote=ivandasilva]Troca

por

e vê se funciona[/quote]
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 ?

[quote=ivandasilva][quote]
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…
[/quote]

Como assim excluir um registro duas vezes ?

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

E nos updates, ela é atualizada ? [/quote]

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…

Alguém mais poderia ajudar??

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

[quote=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[/quote]
posso te mandar o botão Excluir pra vc dar uma olhada?? Estou vendo isso agora inclusive…

[quote=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[/quote]

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

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> 

[quote=ivandasilva]Vê se funciona com esse componente

[code]

<?xml version='1.0' encoding='UTF-8' ?>
<!-- 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>  
[/code][/quote]

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 <cc:attribute name=“update” default=“tab”/> 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… :slight_smile:

[quote=ivandasilva]Vê se funciona com esse componente

[code]

<?xml version='1.0' encoding='UTF-8' ?>
<!-- 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>  
[/code][/quote] Testei aqui mas não deu certo... Mais alguma idéia?? Vlw por estar ajudando cara :)

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

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

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