Estou com um problema que já está me perturbando há alguns dias.
Tenho um p:selectonemenu que atualiza outro p:selectonemenu atraves de uma chamada p:ajax.
Porém o segundo p:selectonemenu não renderiza.
Quando uso assim, funciona.
E acrescentando process="@this" no primeiro select resolve?
D
dcourcy
Oi Roselito,
Não resolve, não.
Aceito outras sugestões.
Até verifiquei com firebug. Ele gera os dados mas não os apresenta. Já testei com primefaces 3.4 e com o 4.0 e não obtive resultado favorável.
R
Roselito_Favero_da_S
Duas sugestões pra tentar descobrir o que está acontecendo:
1 - mandar atualizar algum container que esteja fora dos select, um painel, ou até @form.
2 - criar um container do JSF ou do Primefaces em volta do segundo select (panelgrid, ou outputpanel) e mandar atualizar o container.
D
dcourcy
Roselito Fávero da Silva:
Duas sugestões pra tentar descobrir o que está acontecendo:
1 - mandar atualizar algum container que esteja fora dos select, um painel, ou até @form.
2 - criar um container do JSF ou do Primefaces em volta do segundo select (panelgrid, ou outputpanel) e mandar atualizar o container.
Neste caso ele deixa de renderizar tanto o selectOneMenu com id="fldTipoPeriodo" quanto os alvos fldPeriodoInicial e fldPeriodoFinal se os selectOneMenu destes últimos forem do elementos de primefaces.
Encontrei outra solução para que o projeto não fique parado muito tempo neste ponto.
xhtml original (o que está apresentando erro) estava com a estrutura abaixo:
<?xml version="1.0" encoding="ISO-8859-1" ?><ui:compositiontemplate="/paginas/templates/cadastroTemplate.xhtml"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"xmlns:p="http://primefaces.org/ui"><ui:definename="cadastro"><h:outputStylesheetlibrary="css"name="sig.css"/><divid="corpo-pagina"><!-- Inicio Corpo da pagina --><divid="divEsquerda"style="width:5%;">.</div><divid="divformulario"class="classFormulario"style="width:90%;"><divid="divformN"><divid="divformNW"style="float:left;width:50%"><!-- Aqui entra um gráfico --></div><!-- Fim divformNW --><divid="divformNE"style="float:left;width:50%"><!-- Aqui entra um gráfico --></div><!-- Fim divformNE --></div><!-- Fim divformN --><p:separator/><divid="divformS"><divid="divformSW"style="float:left;width:50%"><h:formid="frmFiltro"prependId="false"><p:panelid="panel"header="Filtros"style="margin-bottom:10px;"><h:panelGridcolumns="3"cellpadding="5"><h:outputTextvalue="Período por: "/><p:selectOneMenuid="fldTipoPeriodo"value="#{sigKpiQtAtendimentos.periodoTipo}"process="@this"><p:ajaxupdate="fldPeriodoInicial fldPeriodoFinal"event="change"listener="#{sigKpiQtAtendimentos.trocaPeriodo()}"/><f:selectItemitemLabel="Selecione..."itemValue=""/><f:selectItemsvalue="#{sigKpiQtAtendimentos.periodosTipos}"/></p:selectOneMenu><br/><h:outputTextvalue="Intervalo : "/><p:selectOneMenuid="fldPeriodoInicial"value="#{sigKpiQtAtendimentos.periodoInicial}"><f:selectItemitemLabel="Período Inicial..."itemValue=""/><f:selectItemsvalue="#{sigKpiQtAtendimentos.periodosTiposItens}"/></p:selectOneMenu><h:selectOneMenuid="fldPeriodoFinal"value="#{sigKpiQtAtendimentos.periodoFinal}"><f:selectItemitemLabel="Período Final..."itemValue=""/><f:selectItemsvalue="#{sigKpiQtAtendimentos.periodosTiposItens}"/></h:selectOneMenu><h:outputTextvalue="Especialidade: "/><!-- outros filtros entravam aqui mas foram removidos na tentativa deisolar o problema --><br/></h:panelGrid></p:panel></h:form></div><!-- Fim divformSW --><divid="divformSE"style="float:left;width:50%"><h:formid="frmListagem"><!-- Aqui entra um dataTable --></h:form></div><!-- Fim divformSE --></div><!-- Fim divformS --></div><!-- Fim da divformulario --></div><!-- Fim da div corpo-pagina --></ui:define></ui:composition>
Joguei o template pro alto (criei uma cópia renomeada para não perder este original) e remontei toda a pagina com h:head e h:body e está funcionando.
Está porco pois não estou compatimentalizando, mas está funcionando sem erro e posso continuar o projeto.
Porém este bug (não se se meu ou do primefaces) ainda está engasgado e continuo aceitando sugestões.