Olá Srs…
sou iniciante e estou com o seguinte problema.
Estou com um datatable e criei um confirmDialog para excluir registros, mas na hora que você chama o confirmDialog ele exclui o registro antes que eu clique no botão de sim.
Se alguém puder me auxiliar eu agradeço
Obrigado
MINHA PAGINA
<?xml version='1.0' encoding='UTF-8' ?> <p:toolbar>
<p:toolbarGroup align="left">
</p:toolbarGroup>
<p:toolbarGroup align="right">
<p:commandButton icon="ui-icon-help"/>
</p:toolbarGroup>
</p:toolbar>
<p:panel header="Cadastro de Departamento" toggleable="true" toggleOrientation="horizontal">
<p:growl showDetail="true"/>
<div align="center">
<h:outputLabel value="Os campos com ( * ) são obrigatórios"/>
</div>
<p:panelGrid columns="2">
<h:outputLabel value="* Nome: " for="nome"/>
<p:inputText id="nome" style="width: 150px" value="#{departamentoBean.departamento.nome}"/>
<h:outputLabel value="* Setor " for="set"/>
<p:inputText id="set" style="width: 150px" value="#{departamentoBean.departamento.setor}"/>
</p:panelGrid>
<br/>
<p:commandButton value="Salvar" action="#{departamentoBean.salvar()}" ajax="false" icon="ui-icon-disk"/>
<separator/>
<p:commandButton value="Cancelar" action="#{departamentoBean.limpar()}" ajax="false" icon="ui-icon-close"/>
<separator/>
<p:commandButton value="Atualizar" action="#{departamentoBean.atualizar()}" ajax="false" icon="ui-icon-refresh"/>
</p:panel>
<h:form id="mensagem">
<p:dataTable id="tab" value="#{departamentoBean.departamentos}" var="item" scrollable="true" scrollRows="100" >
<f:facet name="header">
Tabela de Departamentos
</f:facet>
<p:column style="width: 40px">
<f:facet name="header">
<h:outputText value="Id"/>
</f:facet>
<h:outputText value="#{item.idDepartamento}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Nome"/>
</f:facet>
<h:outputText value="#{item.nome}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Setor"/>
</f:facet>
<h:outputText value="#{item.setor}"/>
</p:column>
<p:column style="width: 60px">
<f:facet name="header">
<h:outputText value="Ação"/>
</f:facet>
<p:commandButton icon="ui-icon-trash" action="#{departamentoBean.apagar()}" ajax="false"
onclick="confirmation.show()">
<f:setPropertyActionListener value="#{item}" target="#{departamentoBean.departamento}"/>
</p:commandButton>
<p:commandButton icon="ui-icon-pencil" action="cadastro-departamento" ajax="false">
<f:setPropertyActionListener value="#{item}" target="#{departamentoBean.departamento}"/>
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
<p:confirmDialog id="confirmDialog" message="Deseja realmente apagar esse departamento ? "
header="ATENÇÂO" severity="alert" widgetVar="confirmation" appendToBody="true" >
<p:commandButton value="Sim" oncomplete="confirmation.hide()" actionListener="#{departamentoBean.apagar()}"
update="mensagem" icon="ui-icon-check">
<f:setPropertyActionListener value="#{item}" target="#{departamentoBean.departamento}"/>
</p:commandButton>
<p:commandButton immediate="true" value="Não" onclick="confirmation.hide()" type="button" icon="ui-icon-cancel"/>
</p:confirmDialog>
</ui:define>
</ui:composition>
[b]BEAN
Apagar[/b]
public void apagar(){
EntityManager em = null;
EntityTransaction trans = null;
try {
em = JPAUtil.getEntityManager();
trans = em.getTransaction();
trans.begin();
Departamento departamentoB = em.find(Departamento.class, departamento.getIdDepartamento());
em.remove(departamentoB);
trans.commit();
listar();
JSFUtil.addMsg("OK ! ", "Departamento apagado com sucesso ! ", FacesMessage.SEVERITY_INFO);
limpar();
} catch (Exception e) {
JSFUtil.addMsg("Erro ! ", "Houve um erro ao apagar o Departamento ", FacesMessage.SEVERITY_ERROR);
if (trans != null && trans.isActive()) {
trans.rollback();
}
}
}