Boa tarde pessoal,
estou com um problema que está me tirando o sono.
<h:outputLabelvalue="UF:"/><p:selectOneMenuid="som-ufs"value="#{pessoasFisicasManagedBean.UF}"><f:selectItemitemLabel="Selecione o estado"itemValue="Nenhum"/><f:selectItemitemLabel="Nenhum"itemValue="Outro"/><f:selectItemsvalue="#{pessoasFisicasManagedBean.UFs}"/><p:ajaxevent="change"update="som-cidades,test-inp"listener="#{pessoasFisicasManagedBean.getchangeUF}"/></p:selectOneMenu><h:outputLabelvalue="Cidade:"/><p:selectOneMenuid="som-cidades"value="#{pessoasFisicasManagedBean.city}"><f:selectItemitemLabel="Selecione a cidade"itemValue="Nenhum"/><f:selectItemsvalue="#{pessoasFisicasManagedBean.cidades}"/></p:selectOneMenu><p:outputLabelfor="test-inp"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"value="created"/><p:inputTextid="test-inp"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"label="created"/>
Quando eu selecionar em som-ufs o item outro, o componente test-inp deve aparecer na tela. Quando eu selecionar qualquer outro valor ele deve sumir. Não consigo renderizar ele na tela, ou fazê-lo desaparecer. Estes componentes estão dentro de um p:dialog, assim não posso colocar assim:
<p:selectOneMenu id=“som-ufs” value="#{pessoasFisicasManagedBean.UF}" onChange=“this.form:submit()”> Alguém tem alguma idéia?
A propriedade mostraesconde está funcionando corretamente. Tenho certeza que o problema está na renderização ou atualização da tela.
Olhei os exemplos, mas não funcionou, ou, eu não estou sabendo usar.
Tentei assim:
<h:outputLabelvalue="UF:"/><p:selectOneMenuid="som-ufs"value="#{pessoasFisicasManagedBean.UF}"><f:selectItemitemLabel="Selecione o estado"itemValue="Nenhum"/><f:selectItemitemLabel="Nenhum"itemValue="Outro"/><f:selectItemsvalue="#{pessoasFisicasManagedBean.UFs}"/><p:ajaxevent="change"update="som-cidades"listener="#{pessoasFisicasManagedBean.getchangeUF}"/><f:ajaxrender="test-inp"execute="test-inp"/></p:selectOneMenu><h:outputLabelvalue="Cidade:"/><p:selectOneMenuid="som-cidades"value="#{pessoasFisicasManagedBean.city}"><f:selectItemitemLabel="Selecione a cidade"itemValue="Nenhum"/><f:selectItemsvalue="#{pessoasFisicasManagedBean.cidades}"/></p:selectOneMenu><p:outputLabelfor="test-inp"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"value="created"/><p:inputTextid="test-inp"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"label="created"/><h:outputTextvalue="Natural da Cidade: *"/><p:inputTextrequired="true"label="Natural da Cidade"value="#{pessoasFisicasManagedBean.selectedPf.cidadeNasc}"/>
Tem como me dar uma dica?
T
trashdollar
Resolvido:
Bastava eu atualizar o form que está dentro do p:dialog.
Para futuras consultas segue como ficou:
<h:outputLabelvalue="UF:"/><p:selectOneMenuid="som-ufs"value="#{pessoasFisicasManagedBean.UF}"><f:selectItemitemLabel="Selecione o estado"itemValue="Nenhum"/><f:selectItemitemLabel="Nenhum"itemValue="Outro"/><f:selectItemsvalue="#{pessoasFisicasManagedBean.UFs}"/><p:ajaxevent="change"update="som-cidades,formcad"listener="#{pessoasFisicasManagedBean.getchangeUF}"/></p:selectOneMenu><h:outputLabelvalue="Cidade:"/><p:selectOneMenuid="som-cidades"value="#{pessoasFisicasManagedBean.city}"><f:selectItemitemLabel="Selecione a cidade"itemValue="Nenhum"/><f:selectItemsvalue="#{pessoasFisicasManagedBean.cidades}"/></p:selectOneMenu><p:outputLabelfor="test-inp"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"value="created"/><p:inputTextid="test-inp"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"label="created"/>
Adicionei formcad que é o formulário contido dentro de p:dialog e que contém os componentes acima. Funcionou legal.
T
trashdollar
Achei que tinha resolvido, porém estou com um outro problema. Quando o código abaixo roda eu perco os dados digitados anteriormente devido ao refresh do form. Ainda não consegui resolver. Veja abaixo como está!!!
<h:outputLabelvalue="Natural do Estado:"/><p:selectOneMenuid="som-ufs"value="#{pessoasFisicasManagedBean.UF}"><f:selectItemitemLabel="Selecione o estado"itemValue="Nenhum"/><f:selectItemitemLabel="Outro"itemValue="Outro"/><f:selectItemsvalue="#{pessoasFisicasManagedBean.UFs}"/><p:ajaxevent="change"update="som-cidades,test-inp"listener="#{pessoasFisicasManagedBean.getchangeUF}"/></p:selectOneMenu><h:outputLabelvalue="Natural da Cidade:"/><p:selectOneMenuid="som-cidades"value="#{pessoasFisicasManagedBean.city}"><f:selectItemitemLabel="Selecione a cidade"itemValue="Nenhum"/><f:selectItemsvalue="#{pessoasFisicasManagedBean.cidades}"/></p:selectOneMenu><h:outputLabelfor="test-inp"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"value="created"/><p:inputTextid="test-inp"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"label="created"/>
só atualiza sem perder os dados anteriores se eu envolvesse o mesmo com um panelGrid.
Ficou assim:
<h:panelGridtitle="Digite os novos dados"id="gridstate"columns="2"columnClasses="label, value"style=" resize: horizontal"><h:outputLabelfor="state"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"value="Natural do Estado:"/><p:inputTextlabel="Estado:"id="state"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"/><h:outputLabelfor="sigla"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"value="Sigla: "/><p:inputTextlabel="Sigla:"id="sigla"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"/><h:outputLabelfor="city"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"value="Cidade Natal: "/><p:inputTextlabel="Cidade:"id="city"rendered="#{pessoasFisicasManagedBean.mostraEsconde}"/></h:panelGrid>
Agora sim, ele mostra e esconde todos os componentes, pois dá um update no panelGrid.
Gostaria de pedir a todos aqueles que pedem ajuda e que conseguiram resolver o problema por conta própria que deixem a solução para consultas posteriores.