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();");
}
}