Acionar commandlink atraves de radio button

Pessoal,

Criei umas opcoes com radio buttons, os mesmos chamam o meu bean e roda beleza

Tenho um botao que serve para atualizar os dados da tela apos eu selecionar algum radio, problema é que gostaria de chamar este botao apenas mudando as opcoes do radiobutton ou selecionando algum deles(sem precisar clicar no botao de atualizar do commandLink

codigo dos radios:

 <t:selectOneRadio id="opcoes" forceId="true" forceIdIndex="true"  layout="spread" value="#{testeBean.codigo}" >
       <t:selectItems var="vTaxas" value="#{testeBean.listaTaxas}"
           itemLabel="#{vTaxas.descricao}" itemValue="#{vTaxas.codigoTaxas}" />
 </t:selectOneRadio>

codigo do botão:

<h:commandLink id="atualizaTaxa" actionListener="#{testeBean.atualizarTaxas}">
       <h:graphicImage url="images/sul/updat.jpg" />
 </h:commandLink>

cara,

não sei qual framework vc ta usando, mas seu componente t:selectOneRadio nao teria a opção actionListener?

t+

Opa

Uso o JSF 1. Entao, só no commandLink tem essa opção Alisson

vc ta usando so JSF, nao ta usando mais nenhuma implementação, tipo richfaces?

Para este tipo de situação só ele !

Mas qual sua dica? dependendo de não tiver que modificar muito, eu posso mudar algo…

pq vc poderia usar o biblioteca que vem junto com o richfaces que é a4j, nele vc tem o compomente a4j:support, que vc faz isso facilmente, igual segue nesse link. http://stackoverflow.com/questions/480975/selectoneradio-with-action-immediately-after-click

t+

valeu pela informacao cara,

abraç

se vc está usando o tomahawk provavelmente vai ter problema quanto a incluir o richfaces no projeto (vai dar conflito), já tentei incluir richfaces com trinidad e os filtros “brigavam”.

O que você pode fazer a meu ver é:

  1. No onchange do selectOneRadio você pode colocar para chamar o click() do commandLink.
  2. Procurar algum componente tomahawk para ajax
  3. Trocar a biblioteca de componentes para alguma outra com ajax (no momento estou usando o primefaces)
  4. Tentar usar o f:ajax do jsf (somente a partir da versão 2.0)
  5. Olhando rapidamente, encontrei esse link que diz que consegue dessa forma fazer o A4J funcionar com o myfaces, dá uma olhada para ver se consegue.
  6. Criar um componente para fazer o ajax do t:selectOneRadio.

Ola pessoal,

Usei o onchange e não deu certo, estou tentando outros componentes para o :selectOneRadio.…mas ate o momento nada…

no onchange teria que ser algo assim:

<h:form id="form1">
  <t:selectOneRadio id="opcoes" forceId="true" forceIdIndex="true"  layout="spread" value="#{testeBean.codigo}" 
      onclick="document.getElementById('form1:atualizaTaxa').click()">  
        <t:selectItems var="vTaxas" value="#{testeBean.listaTaxas}"  
            itemLabel="#{vTaxas.descricao}" itemValue="#{vTaxas.codigoTaxas}" />  
  </t:selectOneRadio>
  <h:commandLink id="atualizaTaxa" actionListener="#{testeBean.atualizarTaxas}">  
         <h:graphicImage url="images/sul/updat.jpg" />  
  </h:commandLink>  
</h:form>

Tinha um problema na linha do:

onclick="document.getElementById("form1:atualizaTaxa").click()"

então ele nao deu erro desta forma:

onclick="document.getElementById(form1:atualizaTaxa).click()"   // sem as aspas do interior

mas ele nao faz nada, mesmo assim só atualiza se eu clicar no botão :confused:

dá uma olhada melhor no código que coloquei, pouco depois eu troquei essa linha.

valeu pela ajuda,

Nao esta rodando, nao da erro, mas ele nao faz nada…acho que o erro seja porque o radiobutton esta num panelgrid e o commandLink em outro,…como fazer rodar destar forma?

esta assim:

radios:

..
 <h:panelGrid id="listaTaxas" columns="1" rendered="#{testeBean.txInformada}">  
..  
</h:panelGrid> 
..

botão do commandlink


<h:panelGrid id="AtualzarModo" columns="2" rendered="#{not empty testeBean.solicitaFinal"> 
 <h:outputText id="autAtualizarCarrinho" 
.. 

vc trocou o início do id do seu commandLink na referência de javascript pelo id do sei form?

form1:atualizaTaxa

Verifica no código html gerado qual o id do seu commandLink (a tag angora )