Primefaces - Renderizar elementos

6 respostas
E

Olá pessoal !

Preciso renderizar alguns elementos ao clicar num selectOneRadio porém está pegando sempre o valor do primeiro ítem. Se eu colocar fora do form "dados" funciona mas preciso ela dentro. Como posso resolver isso ?

<h:form id="cadGeral">
           
            <p:tabView effect="opacity" effectDuration="normal">
                <p:tab title="Dados Pessoais">
                    <h:form id="dados">
                        <p:panel id="panelCad">

                            <h:panelGrid columns="2" id="dados_pessoais">

                                <h:outputLabel value="Tipo Pessoa :"/>

                                <h:selectOneRadio id="tipo_pessoa" value="#{cadastroPessoasMB.pessoa.tipo_pfpj}" >
                                   <f:selectItem id="tp1" itemLabel="Pessoa Física" itemValue="pf" />
                                   <f:selectItem id="tp2" itemLabel="Pessoa Jurídica" itemValue="pj" />
                                   <p:ajax event="change"
                                        listener="@this"
                                        update="@form"
                                        process="cadGeral:dados:dados_pessoais" />
                                  </h:selectOneRadio>

6 Respostas

altitdb

Amigo,

porque você usa 2 forms?

Você pode colocar o prependId=false no form e renderizar somente pelo id, caso contrario é só fazer nomedoform:iddocomponente!

xD~~

E

Estava usando mais de um pois era para cada table do meu BD, mas estou adaptando para deixar em um só.

Ao clicar nesse selectOneRadio estou habilitando alguns campos. Agora renderiza, mas os dados(values) do form são perdidos. Tem como resolver isso ?

altitdb

Qual Scopo você está usando??

Tente usar @ViewScoped.

xD~~

E

Uso o @ViewScoped mesmo.

altitdb

Tente fazer assim então:

<p:ajax event="change"  update="aqui os id's que você quer att" />

xD~~

fernandogodoy18

só para reforçar procure usar o f:ajax no lugar do p:ajax

O p:ajax funciona perfeitamente, porém o f:ajax é nativo do jsf 2.0 e ganha muito em questão de performance na renderização de componentes

Criado 7 de março de 2011
Ultima resposta 7 de mar. de 2011
Respostas 6
Participantes 3