Confirm Dialog

29 respostas
R

Segue o codigo , no lugar do command button excluir gostaria de por um confirm dialog , mais nao consigui seguindo o modelo do primefaces/showcase.

<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition template="/templates/principal.xhtml"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">

	<ui:define name="title">
		Listagem de Carros
	</ui:define>

	<ui:define name="center">
		<h:form>
			<p:growl id="growl" showDetail="true" sticky="false" life="2000" /> 
			
			<p:panel id="panel" header="Lista de carros" footer="Rodapé tabela">
				<p:commandButton id="btnCadastro" value="Novo" 
					action="#{carroMB.doNovoAction}" ajax="false" />
				
				<p:dataTable id="tblCarro" value="#{carroMB.listaCarro}" 
					var="carro" paginator="true" resizableColumns="true" 
					rows="5" selectionMode="single" rowKey="#{carro}" emptyMessage="Sem registros">
		
				
					<p:column>
						<f:facet name="header">Nome</f:facet>
						<p:outputLabel value="#{carro.nome}"/>
					</p:column>

					<p:column>
						<f:facet name="header">Ação</f:facet>

						<p:commandButton id="btnEditar" value="Editar" 
							action="#{carroMB.doEditarAction}" ajax="false">
							<f:setPropertyActionListener
								target="#{carroMB.carro}" value="#{carro}" />
						</p:commandButton>
						
						<p:spacer height="10"/>					
						
						[color=red]<p:commandButton id="btnExcluir" value="Excluir" 
							action="#{carroMB.doExcluirAction}" ajax="false">
							<f:setPropertyActionListener
								target="#{carroMB.carro}" value="#{carro}" />
						</p:commandButton>[/color]
						
					</p:column>
		
				</p:dataTable>
			</p:panel>
		</h:form>
	</ui:define>
</ui:composition>

se alguem conseguir adaptar o trecho pra um confirm dialog.. de qualquer forma obrigado!

29 Respostas

R

No caso é esse trecho que tenho q passar para confirm dialog

[color=red]
<p:commandButton id=“btnExcluir” value=“Excluir"
action=”#{carroMB.doExcluirAction}" ajax=“false”>
<f:setPropertyActionListener
target="#{carroMB.carro}" value="#{carro}" />
</p:commandButton>

</p:column>

[/color]

R

alguem… pessoal concertz vcs ja usaram isso !

felipe_gdr

Tente algo assim:

<p:commandButton value="Excluir"  onclick="confirmaExclusao.show()">  

<p:confirmDialog id="confirmaExclusao" message="Voce deseja realmente excluir?" header="Confirmação" severity="alert" widgetVar="confirmaExclusao">  
                  
        <p:commandButton id="confirmaBtn" value="Sim" oncomplete="confirmaExclusao.hide()"  
                    action="#{carroMB.doExcluirAction}" >
                            <f:setPropertyActionListener  
                                target="#{carroMB.carro}" value="#{carro}" />    
        </p:commandButton>

        <p:commandButton id="recusaBtn" value="Não" onclick="confirmaExclusao.hide()"/>   

</p:confirmDialog>
R

Resolvido.

felipe_gdr vc é o cara , muito obrigado de verdade , um botão com tamanho poder não pode ser dado ao usuário sem confirmação VLW!

MarcolaLipe10

O meu ta excluindo sempre o ultimo contato !

Como que vcs fizeram ???

Poderiam mostrar a Xhmtl toda XD

R

Bom dia pessoal, estou tentando implantar o código do felipe_gdr no meu projeto, mas
quando eu clico em salvar, acontece que a tela fica amarelada e sem ação.

Segue o meu código:

<?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:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
   <h:head>
        <title>Clínica Odontológica</title>
    </h:head>
    <h:body>
        <ui:composition template="./template.xhtml">
            <ui:define name="content">
                <center>   
              <h:form>
             <p:fieldset legend="Formulário das Especialidades" >

               
                 <f:view>
                     <h:form>
                        
                         <h:panelGrid columns="2">
                            
                             <h:outputLabel value="Nome:" for="nome" />
                             <h:inputText id="nome" value="#{especialidadesManagedBean.especialidades.nome}"
                                          title="Nome" required="true" requiredMessage="O campo nome é obrigatório."/>
                         </h:panelGrid>
                     </h:form>
                 </f:view>

                                 
                 <p:commandButton value="Salvar"  onclick="confirmaInsercao.show();" >  

                              <p:confirmDialog id="confirmaInsercao" message="Você deseja realmente salvar?" header="Confirmação" severity="alert" widgetVar="confirmaInsercao">  
                  
                              <p:commandButton  value="Sim" oncomplete="confirmaInsercao.hide()"  
                                                action="#{especialidadesManagedBean.inserirE()}" >
                               <f:setPropertyActionListener  
                                target="#{especialidadesManagedBean.especialidades}" value="#{especialidades}" />    
                                </p:commandButton>

                                 <p:commandButton  value="Não" onclick="confirmaInsercao.hide();"/>   

                               </p:confirmDialog> 
                               </p:commandButton>

            



               

              
               
                
                    
                
 
                    
                  
                   <center>
               <p:commandButton value="Limpar" ajax="true" immediate="true" type="reset"/>
              </center>
                      
                         </p:fieldset>
       
                  </h:form>
                    
                </center>
                
                 
            </ui:define>
        </ui:composition>
    </h:body>
</html>
felipe_gdr

Você colocou o p:dialog dentro do p:command button. Tente tirar ele de dentro do p:command, coloque-o no finalzinho da página, por exemplo.

felipe_gdr

MarcolaLipe10:
O meu ta excluindo sempre o ultimo contato !

Como que vcs fizeram ???

Poderiam mostrar a Xhmtl toda XD

Conseguiu resolver Marco?

MarcolaLipe10

Sim sim …
Se alguem qr que eu disponibilizo eu coloco aqui !!! :smiley:

R

Bom dia pessoal!
Muito obrigado por responder felipe_gdr
Tentei como você sugeriu, mas continua na mesma,
O estranho que após clicar em salvar, a tela de confirmação
aparece, só que toda a tela fica amarelada e sem ação

R

E ai MarcolaLipe10, tudo bom?
Cara, se puder colocar seu código aqui, me ajudaria muito
Abraço.

MarcolaLipe10

Repara , que eu coloquei o Dialog abaixo do BODY ....
Ta fora do corpo !

E a Bean , esta assim :

@ManagedBean(name="fBean")
@SessionScoped

<p:dataTable id="dataTable" var="usuario" value="#{fBean.lista}"
						sortMode="multiple" rows="7" paginator="true"
						styleClass="fonteMenor">


						<f:facet name="header">
							<font color="blue" size="20px">Funcionários</font>
						</f:facet>

	                                            <p:column headerText="Excluir" width="0">
							<p:commandButton value="Excluir" onclick="confirmation.show()"
								icon="ui-icon-trash">
								<f:setPropertyActionListener target="#{fBean.usuario}"
									value="#{usuario}" />
							</p:commandButton>

						</p:column>
                   </p:dataTable>
</h:body>
	<p:dialog id="confirmDialog" header="Atenção !" severity="alert"
		widgetVar="confirmation" showEffect="explode" hideEffect="bounce"
		appendToBody="true" modal="true">

		<h:outputText value="Você deseja excluir esse Funcionário ?" />
		<br />
		<br />

		<p:commandButton value="Sim" oncomplete="confirmation.hide()"
			update="forme" action="#{fBean.excluir}" />

		<p:commandButton id="decline" value="Ainda Não" onclick="confirmation.hide()" type="button" />
	</p:dialog>
R

Obrigado pela ajuda felipe_gdr e MarcolaLipe10, mas ainda não consegui resolver :confused:
Vou tentando aqui, caso de certo, posto aqui, obrigado pela ajuda.

R

Bom dia pessoal, realmente não consegui fazer funcionar a mensagem de confirmação do meu código,
gostaria da ajuda de vocês, segue o código :

<?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:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
   <h:head>
        <title>Clínica Odontológica</title>
    </h:head>
    <h:body>
        <ui:composition template="./template.xhtml">
            <ui:define name="content">
                <center>   
              <h:form>
             <p:fieldset legend="Formulário das Especialidades" >

               
                 <f:view>
                     <h:form>
                        
                         <h:panelGrid columns="2">
                            
                             <h:outputLabel value="Nome:" for="nome" />
                             <h:inputText id="nome" value="#{especialidadesManagedBean.especialidades.nome}"
                                          title="Nome" required="true" requiredMessage="O campo nome é obrigatório."/>
                         </h:panelGrid>
                     </h:form>
                 </f:view>

                            
             <p:commandButton value="Salvar"  onclick="confirmaInsercao.show();" >  

                              <p:confirmDialog id="confirmaInsercao" message="Você deseja realmente salvar?" header="Confirmação" severity="alert" widgetVar="confirmaInsercao">  
                  
                              <p:commandButton  value="Sim" oncomplete="confirmaInsercao.hide()"  
                                                action="#{especialidadesManagedBean.inserirE()}" rendered="true">
                               <f:setPropertyActionListener  
                                   target="#{especialidadesManagedBean.especialidades}" value="#{especialidades}" />    
                                </p:commandButton>

                                 <p:commandButton  value="Não" onclick="confirmaInsercao.hide();"/>   

                               </p:confirmDialog> 
               </p:commandButton>
                              

            



               

              
               
                
                    
                
 
                    
                  
                   <center>
               <p:commandButton value="Limpar" ajax="true" immediate="true" type="reset"/>
              </center>
                      
                         </p:fieldset>
       
                  </h:form>
                    
                        
                    
                </center>
                
                 
            </ui:define>
        </ui:composition>
    </h:body>
    
    
</html>

Desde ja, muito obrigado.

MarcolaLipe10

Roberto

Espero ter ajudado :smiley:

R

Muito obrigado por ter respondido MarcolaLipe10!
Cara, deu quase certo, eu só queria que quando não houvesse nenhum dado inserido no formulário e clicasse no botão salvar,
aparecesse a mensagem pedindo para inserir igual está no formulário:

<?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:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <f:view>
   <h:head>
        <title>Clínica Odontológica</title>
    </h:head>
    <h:body>
        <ui:composition template="./template.xhtml">
            <ui:define name="content">
                <center>   
              <h:form>
             <p:fieldset legend="Formulário das Especialidades" >

               
                 
                     <h:form>
                        
                         <h:panelGrid columns="2">
                            
                             <h:outputLabel value="Nome:" for="nome" />
                             <h:inputText id="nome" value="#{especialidadesManagedBean.especialidades.nome}"
                                          title="Nome" required="true" requiredMessage="O campo nome é obrigatório."/>
                         </h:panelGrid>
                     </h:form>
                    
                      
                    
                            
                      <p:commandButton value="Salvar"  onclick="confirmaInsercao.show();" >  

                          <p:dialog id="confirmaInsercao" header="Deseja realmente salvar?" widgetVar="confirmaInsercao" showEffect="fade" hideEffect="explode">  
                               
                  
                              <p:commandButton  value="Sim" oncomplete="confirmaInsercao.hide()"  
                                                action="#{especialidadesManagedBean.inserirE()}" rendered="true"/>
                             

                                 <p:commandButton  value="Não" onclick="confirmaInsercao.hide();"/>   

                          </p:dialog>
                     </p:commandButton>
                              
                              
                              
                              
                              
                              

               <center>
               <p:commandButton value="Limpar" ajax="true" immediate="true" type="reset"/>
              </center>
                              
                    
                   
                              
                              
                              
                              
                      
            </p:fieldset>
                  
                  
                  
                  
       
           </h:form>
                    
                    <h:form>
                         <p:panel header="Registro de Especialidades">
                        <input type="hidden" value="#{especialidadesManagedBean.recuperar()}" name="carregarEspecialidades"/>
                        <p:dataTable id="tbEspecialidades"
                                     var="especialidadess" value="#{especialidadesManagedBean.especialidadess}"
                                     emptyMessage="Não há registros." 
                                     
                                     paginator="true" rows="5">
                            
                            <p:column headerText="Nome" filterBy="#{especialidadess.nome}">
                                <h:outputText value="#{especialidadess.nome}"/>
                            </p:column>
                            
                            <p:column>
                                 <f:facet name="header">
                                    <h:outputText value="Alterar"/>
                                </f:facet>
                             
                                <h:commandLink action="#{especialidadesManagedBean.alterarE()}"> 
                                    <h:graphicImage width="56" height="56" value="/Imagens/editar.png"  /> 
                              
                               </h:commandLink> 
                                                               
                                   
                                
                            </p:column>
                            <p:column>
                                 <f:facet name="header">
                                    <h:outputText value="Excluir"/>
                                </f:facet>
                               
                                <h:commandLink action="#{especialidadesManagedBean.removerE()}" > 
                                <h:graphicImage width="56" height="56" value="/Imagens/excluir.png" /> 
                                
                                
                                </h:commandLink> 
                                
                            </p:column>
                            
                       
                           
                            
                          </p:dataTable> 
                       
                           <h:panelGrid columns="2">
                             <p:panel header="Exportar dados"> 
                                <h:commandLink>  
                                    <p:graphicImage id="tpdf" value="/Imagens/pdf.png" />  
                                   <p:dataExporter type="pdf" target="tbEspecialidades"  fileName="Especialidades" />  
                               </h:commandLink> 
                              <p:tooltip for="tpdf" value="Exportar para pdf." showEffect="slide" hideEffect="fade" />    
                              
                               <h:commandLink>  
                                    <p:graphicImage id="txml" value="/Imagens/xml.png" />  
                                   <p:dataExporter type="xml" target="tbEspecialidades"  fileName="Especialidades" />  
                               </h:commandLink> 
                              <p:tooltip for="txml" value="Exportar para xml." showEffect="slide" hideEffect="fade" /> 
                       
                           </p:panel> 
                               
                                 
                       
                         
                     
                            </h:panelGrid>
                       
                        
                          
                    </p:panel>
                     
                    </h:form>           
                    
        </center>
                
                 
            </ui:define>
        </ui:composition>
    </h:body>
      
    </f:view>
</html>

Olha o managedBean:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managedBeans;

import entidades.Especialidades;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.ListDataModel;
import sessao.EspecialidadesFacade;


/**
 *
 * @author Gimenes
 */
@ManagedBean 
@ViewScoped


public class especialidadesManagedBean implements java.io.Serializable{
    @EJB
    private EspecialidadesFacade especialidadesFacade;
    
    private ListDataModel especialidadess;

    public ListDataModel getEspecialidadess() {
        return especialidadess;
    }

    public void setEspecialidadess(ListDataModel especialidadess) {
        this.especialidadess = especialidadess;
    }
    
    
    
    
    
    private Especialidades especialidades;
    
    
    
    public String inserirE(){
       this.especialidadesFacade.create(especialidades);
       return null;
        
    }
    public String alterarE(){
        this.especialidadesFacade.edit(especialidades);
        return null;
    }
    
    public String removerE(){
        this.especialidadesFacade.remove(especialidades);
       
        return null;
    } 
    
   
  
    
    private void recuperarEspecialidades(){
        this.especialidadess = new ListDataModel(especialidadesFacade.recuperarTodos());
    }
    
    public void recuperar(){
        this.recuperarEspecialidades();
    }
    
    
    

    public Especialidades getEspecialidades() {
        if(especialidades ==null){
            especialidades = new Especialidades();
            
        }
        return especialidades;
    }

    public void setEspecialidades(Especialidades especialidades) {
        this.especialidades = especialidades;
    }
    
    
    
}

No mais está muito legal!

Ah, você saberia um método para que quando eu clico no botão alterar da dataTable, enviasse
os dados da linha para o formulário para serem alterados? Se não for pedir muito também,
gostaria de aprender a excluir os dados da dataTable pelo botão excluir da mesma.

Obrigado pela paciência!

MarcolaLipe10

Amigão nao entendi direito o que vc qr !!

Desculpa =(

R

Boa tarde MarcolaLipe10, blz?
Então, o que você me sugeriu antes deu certo, porém ficaria melhor
se o usuário clicasse em salvar com os campos vazios, ele retornaria
uma mensagem dizendo que o campo nome é obrigatório igual está
no formulário, segue o código:

<h:form>
                        
                         <h:panelGrid columns="2">
                            
                             <h:outputLabel value="Nome:" for="nome" />
                             <h:inputText id="nome" value="#{especialidadesManagedBean.especialidades.nome}"
                                          title="Nome" required="true" requiredMessage="O campo nome é obrigatório."/>
                         </h:panelGrid>
                     </h:form>

Agora sobre a dataTable, é um pouco mais complicado…
Na frente de cada registro da dataTable, tem os botões alterar e excluir.
O que eu queria que não estou conseguindo, é desenvolver métodos, no
caso do botão alterar, enviar os dados do registro para o campo formulário nome,
para depois serem alterado, e no caso do botão excluir, excluir o registro quando clicar
no botão excluir.

Se puder me dar uma direção sobre isso, ficaria muito grato.

Valeu pela força.

MarcolaLipe10

você qr alterar um componente e abrir dentro de um dialog um formulario para ele alterar ???

E para excluir é normal mano , so pedir para excluir xD

R

Bom dia MarcolaLipe10 tudo blz?
Então cara, é exatamente isso, mas esses métodos não aprendi na faculdade, eu aprendi
a CRUD, mas o alterar e excluir de uma dataTable não aprendi, olha os métodos alterar e
excluir do meu managedBean, aprendi dessa forma, mas assim só altera e exclui se eu digitar
os dados no formulário, o que eu gostaria de entender é como mandar o registro para o formulário quando eu
clica-se no botão alterar e excluir quando eu clica-se no botão excluir.

managedBean:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managedBeans;

import entidades.Especialidades;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.ListDataModel;
import sessao.EspecialidadesFacade;


/**
 *
 * @author Gimenes
 */
@ManagedBean 
@ViewScoped


public class especialidadesManagedBean implements java.io.Serializable{
    @EJB
    private EspecialidadesFacade especialidadesFacade;
    
    private ListDataModel especialidadess;

    public ListDataModel getEspecialidadess() {
        return especialidadess;
    }

    public void setEspecialidadess(ListDataModel especialidadess) {
        this.especialidadess = especialidadess;
    }
    
    
    
    
    
    private Especialidades especialidades;
    
    
    
    public String inserirE(){
       this.especialidadesFacade.create(especialidades);
       return null;
        
    }
    public String alterarE(){
        this.especialidadesFacade.edit(especialidades);
        return null;
    }
    
    public String removerE(){
        this.especialidadesFacade.remove(especialidades);
       
        return null;
    } 
    
   
  
    
    private void recuperarEspecialidades(){
        this.especialidadess = new ListDataModel(especialidadesFacade.recuperarTodos());
    }
    
    public void recuperar(){
        this.recuperarEspecialidades();
    }
    
    
    

    public Especialidades getEspecialidades() {
        if(especialidades ==null){
            especialidades = new Especialidades();
            
        }
        return especialidades;
    }

    public void setEspecialidades(Especialidades especialidades) {
        this.especialidades = especialidades;
    }
    
    
    
}

Mais uma vez obrigado pela paciência, valeu mesmo.

W

Galera, podem me ajudar ?

Em relação ao assunto do tópico, quando tento excluir um item, o sistema só deleta o ultimo registro do datatable ! Jà tentei de TUDO.. Segue o meu codigo, quem puder da uma força, ficarei muito grato ! valeu !

Uma parte é antes do Confirme Dialog, só para ajudarem a análise... Os botoes de exclusao ficam em cada registro da datatable

&lt;p:column style="width:10px" headerText="Data de Cadastro"&gt;
							&lt;center&gt;#{cliente.dataCadastro}&lt;/center&gt;
						&lt;/p:column&gt;



                                      &lt;!-- Aqui começa o botao de excluir --&gt;
						&lt;p:column headerText="Ações"&gt;
							&lt;p:commandButton oncomplete="confirmation.show()"
								icon="ui-icon-trash" ajax="true" title="Excluir o Cliente"&gt;

				
							&lt;/p:commandButton&gt;

							&lt;p:confirmDialog message="Deseja realmente excluir este registo?"
								closable="true" header="Aviso"
								severity="alert" widgetVar="confirmation" showEffect="fade"
								 global="true"&gt;

								&lt;p:commandButton id="btnSim" value="Sim"
									oncomplete="confirmation.hide()" process="@this" action="#{clienteBean.excluir}"
									update=" :lista:idTableListagem"
									ajax="true" onclick="confirmation.hide()"&gt;
								&lt;f:setPropertyActionListener target="#{clienteBean.clienteSelecionado}" value="#{cliente}" /&gt;
									
								&lt;/p:commandButton&gt;
								&lt;p:commandButton id="btnNao" value="Não"
									type="button" /&gt;
							&lt;/p:confirmDialog&gt;

						&lt;/p:column&gt;
					&lt;/p:dataTable&gt;
				&lt;/center&gt;
			&lt;/p:fieldset&gt;

		&lt;/h:form&gt;


	&lt;/p:layoutUnit&gt;
&lt;/p:layout&gt;

</html>

W

RESOLVIDO !

Galera, depois de muito esforço, noites e mais noites perdidas, descobri o que era ! Pelo menos no meu caso foi assim, a versao do JAR que estava usando estava com problema, estava usando a versao 4.0... PQP ! É DE CHORAR !
entao foi para versao 3.4 e funcinou beleza, fiz algumas alteracoes no codigo desse ultimo que postei.. segue ai para quem quiser !!

valeu !!

&lt;p:column&gt;

							&lt;p:commandButton value="Excluir" icon="ui-icon-trash"
								oncomplete="confirmation#{cliente.id}.show()" ajax="true"&gt;
								
							&lt;/p:commandButton&gt;




							&lt;p:confirmDialog id="confirmDialog"
								message="Deseja realmente excluir este registo?"
								closable="true" header="Aviso"
								severity="alert" 
								widgetVar="confirmation#{cliente.id}"   
								showEffect="fade"
								 global="true"
								 appendToBody="true"&gt;


								&lt;p:commandButton id="confirm" value="Sim"
									oncomplete="confirmation#{cliente.id}.hide()" process="@this" action="#{clienteBean.excluir}"
									update=" :lista:idTableListagem"
									ajax="true" onclick="confirmation#{cliente.id}.hide()"&gt;
								&lt;f:setPropertyActionListener target="#{clienteBean.clienteSelecionado}" value="#{cliente}" /&gt;
										
								&lt;/p:commandButton&gt;
								&lt;p:commandButton id="btnNao" value="Não" type="button"  onclick="confirmation#{cliente.id}.hide()" /&gt;   
						
									
							&lt;/p:confirmDialog&gt;
						&lt;/p:column&gt;
tecnowancer

Olá pessoal,

Tenho um problema semelhante,

Estou populando o dialog dentro de um p:datatable

<p:column headerText="teste">
								<p:commandButton value="Destroy the World">  
									<p:confirm header="Confirmation" message="Are you sure?" icon="ui-icon-alert" />  
								</p:commandButton>  

								<p:confirmDialog global="true" showEffect="fade" hideEffect="explode">  
									<p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" action="#{userController.deleteUser}" >
										<f:setPropertyActionListener target="#{userController.id}" value="#{user.id}" />
									</p:commandButton>
									<p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />       
								</p:confirmDialog>  
							</p:column>

Ele até exibe o confirm dialog, mas ao clicar na opção sim, ele não consegue chamar o método que está no bean, alguém pode me ajudar?

ErickRAR

o action e o propertyActionListener devem ficar no p:commandButton, esse que tá com o value “Destroy the World”. O confirm dialog só tem que ter os botões sim e não. mais nada.

tecnowancer

Olá erick,

alteração feita mas ainda sim, ele não chama o método deleteUser no bean userController...

<p:column headerText="teste">
								<p:commandButton value="Destroy the World" action="#{userController.deleteUser}"> 
									<f:setPropertyActionListener target="#{userController.id}" value="#{user.id}" />
									<p:confirm header="Confirmation" message="Are you sure?" icon="ui-icon-alert" />  
								</p:commandButton>  

								<p:confirmDialog global="true" showEffect="fade" hideEffect="explode">  
									<p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
									<p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />       
								</p:confirmDialog>  
							</p:column>
ErickRAR

Como tá o seu método? Tente com actionListener:

<p:commandButton value="Destroy the World" actionListener="#{userController.deleteUser}">   ...

//Bean
public void deleteUser(javax.faces.event.ActionEvent actionEvent){
System.out.println("Lambda Lambda Lambda");
}
tecnowancer

Atualizado, mas ainda não chama o método...

<p:column headerText="teste">
								<p:commandButton value="Destroy the World" actionListener="#{userController.deleteUser}"> 
									<f:setPropertyActionListener target="#{userController.id}" value="#{user.id}" />
									<p:confirm header="Confirmation" message="Are you sure?" icon="ui-icon-alert" />  
								</p:commandButton>  

								<p:confirmDialog global="true" showEffect="fade" hideEffect="explode">  
									<p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
									<p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />       
								</p:confirmDialog>  
							</p:column>
@ManagedBean
public class UserController implements Serializable{

    public void deleteUser(javax.faces.event.ActionEvent actionEvent)
    {
    .
    .
    .
    } 
}
ErickRAR

Isso ta dentro de um h:form?

tecnowancer

Sim, está dentro de um h:form e dentro de um p:dataTable.

Criado 5 de fevereiro de 2013
Ultima resposta 24 de mar. de 2014
Respostas 29
Participantes 7