[RESOLVIDO] Primefaces 6 commandbutton não chama dialog
12 respostas
primefaces
gustavodefreitasmene
Tenho uma página em composicao (ui:composition). Dentro dela, tenho um botao (p:commandButton) que no seu parâmetro oncomplete deve chamar um dialog (p:dialog).
Ele funciona no primefaces 4, porém estou migrando para a versão 6.2, e parou de funcionar.
Ele dá um erro no log do navegador
statusDialog is not defined
Cara, talvez este componente não esteja em um contexto onde o commandButton o encontre ou o id gerado é diferente. São problemas muito comuns no jsf desde muito tempo
gustavodefreitasmene
acabei de fazer um teste usando um p:commandButton sem fazer nada.
<p:commandButtonvalue="teste"/>
e o erro no console do navegador continua.
Será que é algum bug da versão?
Percebi que tem esse comportamento nas versões 5, 6 e 7 do primefaces.
Na versão 4 funciona normalmente
darlan_machado
Veja o html gerado, clica com o botão direito do mouse sobre qualquer componente e verifica qual é o modo como o id final é gerado.
gustavodefreitasmene
Criei um botão agora (<p:commandButton value=“teste” />) e o erro no navegador continua o mesmo.
Será que é algum bug das versões?
Percebi que tem esse comportamento nas versões 5, 6 e 7 do primefaces.
Na versão 4 funciona normalmente
É o padrão para o primefaces, ele sempre inclui o form antes do id que você definiu.
Chegou a verificar se o id do tal dialog é o mesmo apresentado no dialog e no oncomplete?
gustavodefreitasmene
Eu não consigo abrir o dialog com a versão 5, 6 ou 7 do primefaces.
Usei a versão 4 e consegui ver o ID do dialog (form:dialog)
darlan_machado
Mas o dialog está lá no html gerado. Ele fica lá e quando o oncomplete é invocado, ele apenas remove o display: none por display:block (ou similar).
gustavodefreitasmene
é verdade Darlan, desculpa.
O id é o mesmo (form:dialog)
O estranho é que eu criei um botão sem action, onclick, oncomplete. E mesmo assim ele dispara esse erro no console do navegador
darlan_machado
Comportamento estranho.
gustavodefreitasmene
Criei uma tela de exemplo que tem um p:commandButton que chama o p:dialog e funcionou.
Acontece que minha tela “TblEnPais.xhtml” é uma composição de um template “MenuPrincipal.xhtml” e causa esse erro.
gustavodefreitasmene
Descobri o problema, é meu template.
Como é uma aplicação legada, o template “MenuPrincipal.xhtml” é uma bagunça.
Criei um template e composição de teste e usei o commandButton chamando o dialog e funcionou.