Dialog do primefaces não funciona a partir da 2ª chamada

Oi,

Estou usando o p:dialog do primefaces para localizar registros no banco, o problema é que, ao localizar um registro e fechar o dialog, quando abro novamente, é aberto um novo dialog e ai a pesquisa não dá mais certo, o anterior fica por baixo e assim vai, se abro 10 dialog’s, fica 9 por trás tenho que chamar a página jsf para funcionar novamente;

Já procurei soluções aqui no fórum, uma q encontrei seria colocar o dialog dentro de um form, fiz e funcionou a questão de não abrir mais dialog’s, no entanto, nenhum componente de dentro do dialog funciona mais, ou seja, a pesquisa não trás nenhum resultado.

<p:commandLink onclick="pesquisaInteressado.show()" >
  <p:graphicImage alt="Pesquisar" value="imagens/search.png" />
</p:commandLink>
<p:dialog header="Pesquisar Interessado" widgetVar="pesquisaInteressado" height="300" resizable="false" width="460" modal="true" appendToBody="true">
   <h:form>
     <h:outputLabel value="Digite o Nome ou CPF ou Registro do Interessado a ser pesquisado e clique no botão Localizar." id="resultPessoa" />                                            
       <br />
     <h:panelGrid columns="2">
     <p:inputText size="40" value="#{protocoloController.nome_cpf}" />
      <p:commandButton value="Localizar" update="panelTabela" actionListener="#{protocoloController.pesquisarPessoa}" process="@form"/>
      </h:panelGrid>
      <p:outputPanel id="panelTabela">
      <p:dataTable style="width: inherit" id="pessoas" var="row" dynamic="true" emptyMessage="Nenhum registro encontrado." value="#{protocoloController.pessoas}"  >
      <br />
       <p:column>
          <f:facet name="header">
           <h:outputText value="Codigo" />
          </f:facet>
          <p:commandLink value="#{row.codigo}" styleClass="TabelaTexto" action="#{protocoloController.associarPessoaPesquisada}" update="centerForm:blocoEdicao" process="@form" oncomplete="pesquisaInteressado.hide();">
             <f:setPropertyActionListener value="#{row}" target="#{protocoloController.pessoa}" />
          </p:commandLink>
       </p:column>

       <p:column>
         <f:facet name="header">
            <h:outputText value="Nome" />
         </f:facet>
       <h:outputText value="#{row.nome}" styleClass="TabelaTexto" />
       </p:column>

        <p:column>
          <f:facet name="header">
             <h:outputText value="CPF/CNPJ" />
          </f:facet>
          <h:outputText value="#{row.cpfCnpj}" styleClass="TabelaTexto" />
        </p:column>
      </p:dataTable>
     </p:outputPanel>
    </h:form>
</p:dialog>

Da um update no form antes de abrir.

Sem sucesso.

Pessoal se alguém puder resolver essa solução estou com o mesmo problema que ele :confused:

Ou voce mesmo fajo, conseguiu alguma solução para isso ?

remove o form que está dentro do dialog e insere o dialog dentro do mesmo form do p:commandButton, será tudo dentro de um mesmo form. Limpa e recompila o projeto e, por fim, rode-o.

Bom pessoal, não consegui uma solução para o problema, então tive q mudar a estratégia, em vez de abrir um dialog, abri um panel abaixo do input pra realizar a pesquisa. Clicou no botão ele é exibido, clicou no registro localizado ele some e joga os dados no input, é isso.

Acredito q o problema com o p:dialog seja a forma como estou trabalhando q é a exibição de páginas baseadas em estado.

Enfim, o problema foi contornado.

Abs.

Ola… sei que este post é antigo, mais estou com o mesmo problema. Será que vou ter que mudar o layout tb :frowning:

Não fiz outras tentativas Gu, ainda hj está funcionando com a solução dita no meu tópico acima, se vc testou e continua na mesma… ou estamos fazendo alguma coisa errada ou é problema do componente, enfim, a minha solução está funcionando bem e não vou mudar.

Abs.

[quote=fajo]Não fiz outras tentativas Gu, ainda hj está funcionando com a solução dita no meu tópico acima, se vc testou e continua na mesma… ou estamos fazendo alguma coisa errada ou é problema do componente, enfim, a minha solução está funcionando bem e não vou mudar.

Abs.[/quote]

AHUauahuahuahu

Como eu sou brasileiro eu nao desistir :smiley: … coloquei id no dialog e coloquei dentro dele um ajax.
ae agora eu edito o estado e aparece atualizado na lista do dialog para cadastrar a cidade.

Eu sei que voce nao vai mudar o seu sistema, mais fica a dica para o proximo ou pra qm tiver a mesma duvida… flw’s


		 

		<p:dialog widgetVar="editaEstado" width="390" style="margin: 0;"
			id="diaEditaEstado" height="400" header="Estado - Editar"
			showEffect="fade" hideEffect="fade" maximizable="true">
			<p:ajax event="close" global="false" update="dialogCadCidade" />
			<h:form id="formEditaEstado">
				<ui:include src="Administracao/editaEstado.xhtml" />
			</h:form>
		</p:dialog>


		<p:dialog widgetVar="cadCidade" width="240" style="margin: 0;"
			id="dialogCadCidade" height="160" header="Cidade - Cadastrar"
			showEffect="fade" hideEffect="fade" maximizable="true">
			<p:ajax event="close" global="false" update="formCadCidade" />
			<h:form id="formCadCidade">
				<ui:include src="Administracao/cadCidade.xhtml" />
			</h:form>
		</p:dialog>