Estou fazendo um cadastro de paciente, no qual tenho um botão "Localizar" que abre um Dialog
efetuando a busca e a ideia é trazer o registro do paciente de volta pra tela de cadastro.
Ou seja. cadastro -> localizar -> dialog -> cadastro.
O problema é que efetuando a busca, 2 ou 3vezes o dialog abre varias instancias de pesquisas, uma sobreposta a outra.
Acredito que a falha esta relacionada a algum Update.. Estou usando ViewScoped
Código..
<ui:compositionxmlns: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.prime.com.tr/ui"template="/templates/template.xhtml"><ui:definename="title">#{msg.tituloPaciente}</ui:define><ui:definename="tituloConteudo">#{msg.tituloPaciente}</ui:define><ui:definename="content"><h:formid="formGeral"><p:panelheader="Novo Paciente."style="width:80%; margin: 5% 10%;"><h:panelGridid="painelGrid"columns="5"cellpadding="10"><p:commandButtonvalue="Localizar"oncomplete="localizar.show()"cellpadding="5"/></h:panelGrid><h:formid="formCadastro"><h:outputTextvalue="Nome:"/><p:inputTextid="Nome"value="#{pacienteMB.paciente.nom_paciente}"/><h:outputTextvalue="CPF:"/><p:inputMaskid="Cpf"value="#{pacienteMB.paciente.cpf_paciente}"mask="999-999-999-99"/></h:form></p:panel><!-- FORM PESQUISA --><p:dialogid="dialog"header="Localizar Paciente:"widgetVar="localizar"modal="true"width="800"height="400"showEffect="fade"><p:dataTableid="tbPaciente"value="#{pacienteMB.listaPacientes}"var="paciente"border="1"cellspacing="0"><p:column><f:facetname="header"><h:outputTextvalue="Código"/></f:facet><h:outputTextvalue="#{paciente.cod_paciente}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Nome"/></f:facet><h:outputTextvalue="#{paciente.nom_paciente}"/></p:column><p:columnstyle="width:50px"><p:commandButtonupdate="formGeral"action="#{pacienteMB.editar(paciente)}"oncomplete="localizar.hide()"image="ui-icon ui-icon-pencil"style="width:28px;height:28px"title="Edit"/></p:column></p:dataTable></p:dialog><!-- FORM PESQUISA --></h:form></ui:define></ui:composition>
Limpei a tela, deixando mais limpo possivel para identificar o problema.
Qualquer ajuda é bem vinda.
1 - Você clica no botão “Localizar” abre um pop-up onde passa parâmetros para flitrar dados e pode aparecer
mais de um paciente daí você deve escolher um e será aplicado na tela… É isso? Daí o problema ocorre se após terminar
você fazer isso de novo… É isso?
T
tiago.javaman
Olá andre.
é isso mesmo, o dialog exibe uma lista de paciente, aonde eu seleciono um “Edit” e ele carrega para a tela de cadastro fechando o dialog.
o problema acontece na segunda chamada em diante, ele abre várias dialogs ao mesmo tempo, uma sobreposta a outra.
marlonmca
Estou com um o mesmo problema. Quando eu gravo a primeira vez um formulário que está em um p:dialog consigo normalmente. Daí se eu mandar fazer um update no painel dentro do dialog não consigo mais enviar o formulário com valores ai grava um registro vazio e se eu der um update no form fora do dialog quando eu abro o dialog novamente aparecem dois dialogs e o formulário não submete mais.
Se alguém achar a solução manda aê.
T
tiago.javaman
Ngm ?? :shock:
A
andredecotia
Apenas um teste: Tentou mudar o escopo de sessão? Caso sim, surtiu algum efeito? Pode postar o seu ManagedBean?
entao, mudei os comandos como vc passou, e quando mudo o update do Editar de ' update="formGeral" ' para ' update="formCadastro" ' ele nao atualiza mais os dados no formulario de cadastro na volta..
Segue o codigo como ficou..
<ui:compositionxmlns: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.prime.com.tr/ui"template="/templates/template.xhtml"><ui:definename="title">#{msg.tituloPaciente}</ui:define><ui:definename="tituloConteudo">#{msg.tituloPaciente}</ui:define><ui:definename="content"><h:formid="formGeral"><p:panelheader="Novo Paciente."style="width:80%; margin: 5% 10%;"><h:panelGridid="painelGrid"columns="5"cellpadding="10"><p:commandButtonvalue="Localizar"oncomplete="localizar.show()"immediate="true"update="tbPaciente"cellpadding="5"/></h:panelGrid><h:formid="formCadastro"><h:outputTextvalue="Nome:"/><p:inputTextid="Nome"value="#{pacienteMB.paciente.nom_paciente}"/><h:outputTextvalue="CPF:"/><p:inputMaskid="Cpf"value="#{pacienteMB.paciente.cpf_paciente}"mask="999-999-999-99"/></h:form></p:panel><!-- FORM PESQUISA --><p:dialogid="dialog"header="Localizar Paciente:"widgetVar="localizar"modal="true"width="800"height="400"showEffect="fade"><p:dataTableid="tbPaciente"value="#{pacienteMB.listaPacientes}"var="paciente"border="1"cellspacing="0"><p:column><f:facetname="header"><h:outputTextvalue="Código"/></f:facet><h:outputTextvalue="#{paciente.cod_paciente}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Nome"/></f:facet><h:outputTextvalue="#{paciente.nom_paciente}"/></p:column><p:columnstyle="width:50px"><p:commandButtonaction="#{pacienteMB.editar(paciente)}"oncomplete="localizar.hide()"update="formGeral"image="ui-icon ui-icon-pencil"style="width:28px;height:28px"title="Edit"/></p:column></p:dataTable></p:dialog><!-- FORM PESQUISA --></h:form></ui:define></ui:composition>
T
tiago.javaman
Galera.. obrigado pela ajuda de todos.
Resolvi o problema, o fato estava no , no qual o dialog estava inserido no mesmo form do cadastro.
Isolei eles e resolvido o problema..