popupPanel abre e fecha rapidamente

820 views
Skip to first unread message

rogerioag

unread,
Jul 25, 2012, 10:50:04 AM7/25/12
to jav...@googlegroups.com
Bom dia,

estou com um problema semelhangte ao deste tópico, só que estou usando RichFaces.

minha intenção é exibir um popupPanel após clicar num Action e inserir um registro no BD. Meu problema é que o popup só é exibido após clicar duas vezes no Action, e é exibido rapidamente, fechando sozinho antes mesmo de eu clicar nele. O que fiz errado?

<h:commandButton id="btnInserir" value="Inserir" onclick="#{rich:component('pnlOk')}.show()" actionListener="#{meubeanMB.inserir}" />

<rich:popupPanel id="pnlOk" rendered="#{meubeanMB.sucesso}" modal="true" height="150">
      <h:form id="formPnlOk">
               <h:graphicImage value="/images/info.jpg" />
               <h:panelGrid columns="1">
                   <h:outputText id="textoModalOk" value="#{meubeanMB.textoModal}" />
                   <h:commandButton value="OK" action="pagina?faces-redirect=true"
                           onclick="#{rich:component('pnlOk')}.hide(); return false;" >
                       <a4j:ajax execute="formPnlOk" />
                   </h:commandButton>
               </h:panelGrid>
     </h:form>
</rich:popupPanel>


Bruno Maomeh

unread,
Jul 25, 2012, 10:54:05 AM7/25/12
to jav...@googlegroups.com
no botão, você deve chamar o popup, pelo evento onComplete..




--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil



--
Bruno Maomeh
   http://brunomaomeh.wordpress.com

Bruno Maomeh

unread,
Jul 25, 2012, 10:55:44 AM7/25/12
to jav...@googlegroups.com
e vale lembrar, pelo menos em versões mais antigas, o popup deve possuir um form diferente do botão..

Rafael Pestano

unread,
Jul 25, 2012, 12:05:33 PM7/25/12
to jav...@googlegroups.com
tambem vale lembrar que o botão deve ser ajax:

troca <h:commandButton por <a4j:commandButton

 

Att, 

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS


De: Bruno Maomeh <bruno...@gmail.com>
Para: jav...@googlegroups.com
Enviadas: Quarta-feira, 25 de Julho de 2012 11:55
Assunto: Re: [javasf] popupPanel abre e fecha rapidamente

ayslan

unread,
Jul 25, 2012, 11:13:56 AM7/25/12
to jav...@googlegroups.com
Lembrando que o  h:commandButton não é ajax, então ele vai fazer um submit normal mesmo e não tem oncomplete, procura pelo equivalente ao commadButton do richfaces
Att,

Ayslan M. de Sousa

Luiz Augusto

unread,
Jul 25, 2012, 12:28:58 PM7/25/12
to jav...@googlegroups.com
O Rafael ponte já falou sobre isso.
dê um reRender no parent. sempre.

att,
Luiz Augusto

2012/7/25 Rafael Pestano <rmpe...@yahoo.com.br>



--
Luiz Augusto Vilela Marques
luizvile...@gmail.com
(031) 9351 - 1093
(037) 9938 - 1935

rogerioag

unread,
Jul 25, 2012, 5:40:05 PM7/25/12
to jav...@googlegroups.com
Obrigado pelas sugestões.

Na verdade, eu já havia tentado algumas delas, só de maneira intercalada, e acabei alterando para o código postado acima por causa de outros comportamentos estranhos.

Com as sugestões feitas (ver código abaixo) funcionou exatamente como eu queria, só que agora o h:messages que está no início da página não é atualizado corretamente. Se há algum campo que não passou na validação, o messages é atualizado, mas ao corrigir o tal campo e tentar inserir novamente não funciona. Como abaixo, o messages não atualiza nem o insert é feito. O que ainda está faltando?


<a4j:commandButton id="btnInserir" value="Inserir" oncomplete="#{rich:component('pnlOk')}.show()" render="messages outPnlOk" actionListener="#{meubeanMB.inserir}" />

<a4j:outputPanel id="outPnlOk">

       <rich:popupPanel id="pnlOk" rendered="#{meubeanMB.sucesso}" modal="true" height="150">
               <h:graphicImage value="/images/info.jpg" />
               <h:panelGrid columns="1">
                   <h:outputText id="textoModalOk" value="#{meubeanMB.textoModal}" />
                   <h:commandButton value="OK" action="pagina?faces-redirect=true"
                           onclick="#{rich:component('pnlOk')}.hide(); return false;" >
                       <a4j:ajax execute="formPnlOk" />
                   </h:commandButton>
               </h:panelGrid>
       </rich:popupPanel>
</a4j:outputPanel>

rogerioag

unread,
Jul 30, 2012, 10:21:16 PM7/30/12
to jav...@googlegroups.com
Alguma sugestão para este último comportamento, que ocorreu após as alterações?


Em quarta-feira, 25 de julho de 2012 11h50min04s UTC-3, rogerioag escreveu:

Rafael Trindade Chiappetta

unread,
Aug 1, 2012, 8:30:46 AM8/1/12
to jav...@googlegroups.com
Alguma requisição deve está fazendo com que a view seja atualizada, fazendo assim com q o modal se feche.

Talvez seja algo relacionado ao estado da booleana meubeamMB.sucesso ... Vc realmente precisa desse  rendered="#{meubeanMB.sucesso}"  ??

=====
Rafael Trindade Chiappetta

http://lanafeira.biz - Você compra e vende de tudo.
@LaNaFeira



2012/7/30 rogerioag <rogg...@gmail.com>

Rogério Alencar Lino Filho

unread,
Aug 1, 2012, 9:02:50 AM8/1/12
to jav...@googlegroups.com
- Ao invés de chamar o show no onclick, chame no oncomplete (<a4j:commandButton />). 
- Tire o rendered da modal (rendered é para definir se o código html estará presente na página e não se estará visível ao usuário).
- E faça um render no formulário da modal (render=":formPnlOk"), para recarregar o seu conteúdo.

Att.

2012/8/1 Rafael Trindade Chiappetta <rafae...@gmail.com>



--
Rogério Alencar Lino Filho
http://rogeriolino.com
@rogeriolino
Vitória - ES


rogerioag

unread,
Aug 1, 2012, 9:58:39 AM8/1/12
to jav...@googlegroups.com
Obrigado por seu retorno Rafael.
Desculpe, mas este comportamento de fechar eu já conegui eliminar com as primeiras sugestões que recebi. Agora o modal funciona como quero DESDE que todos os campos com validação estejam corretos. Se algum estiver errado, as mensagens são exibidas e aí o botão de inserir não funciona mais.

Quanto ao rendered="#{meubeanMB.sucesso}" , se retirar isso o modal aparece em branco (sem texto) mesmo com os erros de validação.

Se ainda puder me ajudar...........
Reply all
Reply to author
Forward
Message has been deleted
0 new messages