JSF -> OneRadio

5 respostas
brunosales85

Fala galera!
Continuando naquele projeto, me deparei com mais um problema!
o OneRadio.

Sao 2 colunas, ou vc escolhe a 1a ou a 2o:
porém quando eu executo eu vejo que ele pode selecionar as duas colunas!

<h:selectOneRadio value="none" valueChangeListener="#{fonteController}"> <a4j:support event="onchange" reRender="header"/> <f:selectItem itemLabel="" itemValue="ItemFINBRA"/>

alguem pode me dizer tambem qual a funcao do rerender ?
no itemvalue eu posso setar uma outra pagina ?

como faço pra mandar pra paginas separadas dependendo da coluna que o cliente escolher ?

obrigado qualquer ajuda!

5 Respostas

thiagocg

cara, pra vc usar o selectOneRadio com seleção de apenas um radio, vc tem q usar a seguinte sintaxe:

<h:selectOneRadio id="idDoSeuComponente">  
  <f:selectItem itemLabel="Teste1" itemValue="1" />  
  <f:selectItem itemLabel="Teste2" itemValue="2" />  
</h:selectOneRadio>

Assim vc tem um selectOneRadio com várias opções(selectItens).

Quanto a função do reRender, ele redesenha o componente quando o evento que foi declarado para ele ocorrer, no seu caso um “onchange”.

Quanto ao envio de paginas diferentes, no seu managedBean vc pega o valor de qual selectItem esta selecionado e então vc faz uma chamada para redirecionar para a pagina que vc quer de acordo com o selectItem.

Espero ter ajudado!

[]'s

Tchello

Bruno, por acaso os radios estão em uma DataTable?
Se estiverem precisam de uns tratamentos pra funcionarem.

Abraços!

brunosales85

Opa Thiagocg!
eu fiz o oneradio como vc me disse, porem me deparei com um outro problema:
Veja a imagem que esta anexada.

ficou 2 oneradios para 2 valores,
na verdade eu queria 1 oneradio para cada valor.

haja visto que o codigo que vc me forneceu resolveu o problema (alternância entre os oneradios).

E como faço pra setar um valor ? (digamos que o cliente escolha IBGE e clique no botao avançar)
Como redirecionaria para um outro xhtml do IBGE digamos!

obrigado pela ajuda!!

Tchello:
Não, os ONEradio nao estao em um DataTable…

brunosales85

alguem ?

Tchello

Opa Bruno, beleza?
Então, não entendi exatamente sua dúvida, mas vamos lá:
Você tem dois radios por registro da DataTable e quer selecionar apenas um… correto?
Por enquanto ainda não cai num problema desse tipo, o que tenho aqui é um RadioButton por registro e ao selecionar um todos os outros radios da DataTable são deselecionados.
Isso é feito através de JavaScript, segue o código:

function selectOne(form, button)
{
    turnOffRadioForForm(form);
    button.checked = true;
}

function turnOffRadioForForm(form)
{
    for(i=0; i<form.elements.length; i++)
    {
        if(form.elements[i].type=='radio')
        {
            form.elements[i].checked = false;
        }
    }
}

Daí faço a chamada dele assim:

<h:selectOneRadio valueChangeListener="#{METODO DO MANAGED BEAN}"
                                                          onchange="selectOne(form, this);" id="id" >
                                            <f:selectItem itemValue="null"/>
                                        </h:selectOneRadio>

O que teria que fazer é adapta-lo pra que ele funcione da maneira que você quer, por enquanto não penso em outro meio de faze-lo.
Vale lembrar que o metodo que especifiquei no valueChangeListener será chamado a toda requisição feita na página que processar a DataTable a que ele pertence. É um pouco chato de entender como usa-lo, mas tem gente que usa um listener no lugar.

Abraços.

Criado 22 de julho de 2009
Ultima resposta 28 de jul. de 2009
Respostas 5
Participantes 3