lksJF
Dezembro 11, 2012, 3:06pm
#1
Boa tarde!
Tenho uma página xhtml, com um botão “Teste” que chama um p:dialog com o MODAL ativo. Porém, quando ele surge, o modal trava toda a aplicação, inclusive o próprio p:dialog, não sendo possível sequer fechá-lo.
O que estou fazendo de errado?
Página xhtml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
template="/WEB-INF/template/template.xhtml">
<ui:define name="conteudo">
<h:head>
</h:head>
<h:body>
<h:form id="form">
<p:dataTable id="clientes" var="cliente"
value="#{clienteController.listaClientes}" rowKey="#{cliente.nome}"
selectionMode="single">
<p:column headerText="Nome">
<h:outputText value="#{cliente.nome}" />
</p:column>
<p:column headerText="Cidade">
<h:outputText value="#{cliente.cidade}" />
</p:column>
<p:column headerText="Celular">
<h:outputText value="#{cliente.telefone1}" />
</p:column>
<p:column headerText="Telefone">
<h:outputText value="#{cliente.telefone2}" />
</p:column>
<p:column headerText="Observações">
<h:outputText value="#{cliente.observacoes}" />
</p:column>
<p:column headerText="Sexo">
<h:outputText value="#{cliente.sexo}" />
</p:column>
</p:dataTable>
<br />
<p:commandButton value="Adicionar Novo Cliente" icon="ui-icon-disk"
action="#{clienteController.prepararAdicionarCliente}" />
<p:commandButton value="Teste" onclick="dialogGerCliente.show()" />
</h:form>
<p:dialog id="modalDialog" header="Gerenciamento de Clientes"
widgetVar="dialogGerCliente" modal="true" height="200" width="400"
showEffect="side" hideEffect="explode">
<h:form>
<h:outputText value="Nome: " />
</h:form>
</p:dialog>
</h:body>
</ui:define>
</ui:composition>
Desde já, agradeço a ajuda.
Bom dia lksJF
Fiz o meu Trabalho de conclusão de curso usando o Primefaces e também tive problemas com os dialogs. A tela ficava travada também.
Para resolver tirei os atributos showEffect e hideEffect dos meus dialogs.
Deixe seu dialog assim:
<p:dialog id="modalDialog" header="Gerenciamento de Clientes"
widgetVar="dialogGerCliente" modal="true" height="200" width="400">
Qualquer coisa entre em contato.
Att
lksJF
Dezembro 12, 2012, 8:46am
#4
Bom dia JoaoLuizSK,
Fiz as correções sugeridas (remover os atributos showEffect e hideEffect) mas ainda não funcionou.
O p:dialog continua travando toda a tela…
Mais alguma sugestão?!
edubiss
Dezembro 12, 2012, 8:50am
#5
Tenta colocar o type=“button” no teu botão que abre a modal.
<p:commandButton value="Teste" onclick="dialogGerCliente.show()" type="button"/>
lksJF
Dezembro 12, 2012, 8:58am
#6
Olá edubiss,
Tentei sua sugestão aqui e ainda não funcionou…
Mais alguma ideia?
edubiss
Dezembro 12, 2012, 9:18am
#7
Minha outra sugestão seria colocar o teu p:dialog fora da tag ui:define.
Ve se resolve.
lksJF
Dezembro 12, 2012, 9:22am
#8
Tentei também e segue sem solução…
Rapaz comigo deu isso também, e descobrir a fonte do problema que era a maneira do facelet que eu estava usando. Tente usar sem só pra ver se vai dá certo.
Testa com as alterações que fiz abaixo.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
template="/WEB-INF/template/template.xhtml">
<ui:define name="conteudo">
<h:head>
</h:head>
<h:body>
<h:form id="form">
<p:dataTable id="clientes" var="cliente"
value="#{clienteController.listaClientes}" rowKey="#{cliente.nome}"
selectionMode="single">
<p:column headerText="Nome">
<h:outputText value="#{cliente.nome}" />
</p:column>
<p:column headerText="Cidade">
<h:outputText value="#{cliente.cidade}" />
</p:column>
<p:column headerText="Celular">
<h:outputText value="#{cliente.telefone1}" />
</p:column>
<p:column headerText="Telefone">
<h:outputText value="#{cliente.telefone2}" />
</p:column>
<p:column headerText="Observações">
<h:outputText value="#{cliente.observacoes}" />
</p:column>
<p:column headerText="Sexo">
<h:outputText value="#{cliente.sexo}" />
</p:column>
<f:facet name="footer">
<p:commandButton value="Adicionar Novo Cliente" icon="ui-icon-disk" action="#{clienteController.prepararAdicionarCliente}" /> ||
<p:commandButton value="Teste" onclick="dialogGerCliente.show()" update=":form:display"/>
</f:facet>
</p:dataTable>
<p:dialog id="modalDialog" header="Gerenciamento de Clientes"
widgetVar="dialogGerCliente" modal="true" height="200" width="400"
showEffect="side" hideEffect="explode">
<h:panelGrid id="display" columns="2" cellpadding="4">
<h:outputText value="Nome: " />
</h:panelGrid>
</p:dialog>
</h:form>
</h:body>
</ui:define>
</ui:composition>
lksJF
Dezembro 12, 2012, 10:34am
#11
aprendizweb, usei o seu código e continua apresentando o mesmo problema…
O p:dialog continua travando toda a tela.
=/
[code]ui:composition xmlns=“http://www.w3.org/1999/xhtml ”
xmlns:h=“http://java.sun.com/jsf/html ”
xmlns:f=“http://java.sun.com/jsf/core ”
xmlns:ui=“http://java.sun.com/jsf/facelets ”
xmlns:p=“http://primefaces.org/ui ”
template="/WEB-INF/template/template.xhtml">
<ui:define name="conteudo"> [/code]
tente fazer sem essa parte
Tente dessa forma:
<p:dialog widgetVar="mensagemPrivada" id="mpid" header="Mensagem privada"
modal="true" appendToBody="true" resizable="false" draggable="false">
2 curtidas
lksJF
Dezembro 12, 2012, 2:42pm
#14
Boa tarde Marcelo de Andrade !
Fiz as correções que sugeriu e funcionou perfeitamente!
Agora o p:dialog está funcionando, travando apenas o “restante da tela” e deixando-o livre.
Agradeço a todos que participaram e contribuíram.
Vlw!
1 curtida
[quote=lksJF]Boa tarde Marcelo de Andrade !
Fiz as correções que sugeriu e funcionou perfeitamente!
Agora o p:dialog está funcionando, travando apenas o “restante da tela” e deixando-o livre.
Agradeço a todos que participaram e contribuíram.
Vlw!
[/quote]
Valeu mesmo galera, isso sempre nos ajuda, e valeu ao Marcelo de Andrade, matou a charada, comigo aconteceu a mesma coisa, e a única diferença era a bendita propriedade do draggable que faltava, e o pior estava dando erro de js no firebug!
At++
Jesus
1 curtida