Estou desenvolvendo um determinado formulário onde tenho um p:selectOneRadio com duas opções.
Abaixo disto, tenho um panel, que tem o rendered condicionado à uma variável boolean do bean.
Gostaria que, ao selecionar a opção 1 do radio, tal variavel ficasse false, e na opção 2, ficasse true, fazendo exibir ou não o panel. Porém, gostaria que isso acontecesse no evento “change” do selectOneRadio, porém não estou conseguindo…
[quote=edubiss]Sua ideia a principio está certa. Ter uma variável boolean no Bean, associar ao teu selectOneRadio e vincular essa variável no rendered do teu panel.
Posta seu código ai, pra gente dar uma olhada…[/quote]
Obrigado por responder edubiss, na verdade não é que meu código não esteja funcionando. Na verdade não sei como proceder isto. O valor tem q ser setado no bean e atualizado no panel pra que ele receba sua nova situação do rendered, mas como fazer isso? utilizando p:ajax por exemplo, eu teria que colocar um método na listener, mas que método? Apenas quero setar um valor, não chamar um método.
f:setPropertyActionListener seria o ideal, mas como disparar isto no evento change do selectOneRadio?
Por isso estamos usando a tag p:ajax pois dai não é necessário fazer o submit para que os dados sejam enviados ao server. Quando tu coloca um update de algum painel, todo esse painel sera renderizado novamente e seus devidos dados serão atualizados com os dados do server, ou seja, será consultado novamente esses dados no Bean cada evento change do teu radio button.
Coloca um panel por fora do teu render dinamico, pois já vi da problema com isso. Muda o evento também de onchange pra change (acho que no primeFaces se usa assim). Tenta algo assim:
Por isso estamos usando a tag p:ajax pois dai não é necessário fazer o submit para que os dados sejam enviados ao server. Quando tu coloca um update de algum painel, todo esse painel sera renderizado novamente e seus devidos dados serão atualizados com os dados do server, ou seja, será consultado novamente esses dados no Bean cada evento change do teu radio button.
Coloca um panel por fora do teu render dinamico, pois já vi da problema com isso. Muda o evento também de onchange pra change (acho que no primeFaces se usa assim). Tenta algo assim:
Era isso mesmo edubiss, o evento eu já tinha mudado pra change, pois já tinha passado por isso… O problema era isso mesmo… faltava um container pros componentes…