[RESOLVIDO]<p:dialog - Modal

Pessoal,

Quando eu clico no botao gravar, aparece o modal de confirmacao SIM ou NÃO (Conforme tela1), esta ok, porem quando eu clico na lupa da guia e aparece a tela2, porem quando eu clico por exemplo para pesquisar o nro da guia e pressiono ENTER, aparece o modal, (Conforme tela2).

Segue abaixo o codigo:

                         <h:panelGrid columns="1" cellpadding="3" style="text-align:center;">                                  
                                    <h:panelGroup > 
                                        <p:commandButton  value="Gravar" style="height: 35px; font-size: 12px" oncomplete="popup.show()"/>                                                                                                                    
                                    </h:panelGroup>    
                         </h:panelGrid>  

            <p:dialog id="modalpopup" header="" 
                      widgetVar="popup" 
                       height="140" 
                      width="240"  >  
                
                
            <p:panel style="width:210px;height:80px" >
                <h:outputText value="#{msg.deseja_salvar_registro}" style="font-size: 13px;color: #006600;font-weight: bold;"/>                 
                <br/>
            </p:panel>       
                      <h:panelGrid columns="2" cellpadding="3">                 
                          <p:commandButton  value="Sim" actionListener="#{cadguiaMbeancomplem.salvar}" style="height: 35px; font-size: 12px" oncomplete="popup.hide()"/>                                                  
                          <p:commandButton  value="Não"  style="height: 35px; font-size: 12px" oncomplete="popup.hide()"/>                                                   
                     </h:panelGrid>     

            </p:dialog>  





Fala meu bom,

Como esta no exemplo do showcase do prime --> http://www.primefaces.org/showcase/ui/dialog.jsf

Você precisa usar o widgetVar=“dlg1” no dialog recebendo o nclick=“dlg1.show();” do botão, como vc não passa nada ele esta chamando o seu dialog em qualquer onclick

Deve ser isso.

Abraço.

Tentei trocar mas mesmo assim esta dando o problema,

percebi que em qualquer campo, pressiono o ENTER, ele chama o modal.

            <p:dialog id="modalpopup" header="" 
                      widgetVar="dlg1" 
                       height="140" 
                       modal="true" 
                      width="240"  >  
                
                
            <p:panel style="width:210px;height:80px" >
                <h:outputText value="#{msg.deseja_salvar_registro}" style="font-size: 13px;color: #006600;font-weight: bold;"/>                 
                <br/>
            </p:panel>       
                      <h:panelGrid columns="2" cellpadding="3">                 
                          <p:commandButton  value="Sim" actionListener="#{cadguiaMbeancomplem.salvar}" style="height: 35px; font-size: 12px" oncomplete="popup.hide()"/>                                                  
                          <p:commandButton  value="Não"  style="height: 35px; font-size: 12px" oncomplete="popup.hide()"/>                                                   
                     </h:panelGrid>     

            </p:dialog>  

<h:panelGrid columns=“1” cellpadding=“5”>

<p:commandButton id="basic" value="Basic" [b]onclick="dlg1.show();"[/b] type="button" />

</h:panelGrid>

<p:dialog id=“basicDialog” header=“Basic Dialog” widgetVar=“dlg1”>

<h:outputText value="Resistance to PrimeFaces is futile!" />

</p:dialog>

Você não colou o codigo todo dai não deu para enteder se vc seguiu a minha ideia, de qualquer forma esta ai o que falei se atenta onde eu coloquei em negrito.

Abraço.

Leandro, deu certo , o que vc me passou, mas porem se eu pressionar ENTER , em qualquer campo, ele “INTERPRETA”, que seria o SIM do meu modal, e inclui no meu banco de dados, estranho isso …

<h:panelGrid columns=“2” cellpadding=“3”>
<p:commandButton value=“Sim” actionListener="#{cadguiaMbeancomplem.salvar}" style=“height: 35px; font-size: 12px” oncomplete=“popup.hide()”/>

Muda essa parte em negrito para action="#{cadguiaMbeancomplem.salvar}" já tive um problema parecedo e resolvi assim, não me pergunta por que kkkk

Abraço

Fiz da seguinte forma :

    @Override
    public void salvar(ActionEvent ev) throws Exception {

        try {  

            
            obj.setComplemento("1");
            super.atualizar(ev);
            ServicoUtils.redirecionaLogin("guiaconsultacomplem.jsf");
            
        } catch (Exception ex) {
            System.out.print("Erro ----"+ex.getMessage());
        }
        
        
        
    }            

************************view

                              <h:panelGrid columns="2" cellpadding="3">                 
                                  <p:commandButton  value="Sim" action="#{cadguiaMbeancomplem.salvar(ev)}" style="height: 35px; font-size: 12px" oncomplete="dlg1.hide()"/>                                                  
                                  <p:commandButton  value="Não"  style="height: 35px; font-size: 12px" oncomplete="dlg1.hide()"/>                                                   
                             </h:panelGrid>     

Porem , quando pressiono, ENTER , ele esta entrando na minha classe salvar

OBS: preciso do “ev”, pois utilizo no meu metodo SALVAR

Resolvi dessa forma:

obs: não sei se é a mais pratica, mas testei aqui e deu certo

                                            <p:commandButton  value="Gravar"  actionListener="#{cadguiaMbeancomplem.pergunta}" style="height: 35px; font-size: 12px"/>                                                  

    public void pergunta(){        
        if ((obj.getCodguia() != null) && (obj.getCodcid().getCodcid() != null)){
              org.primefaces.context.RequestContext.getCurrentInstance().execute("salvarregistro.show();");  
        }
    }