none
GridView com RadioButton RRS feed

  • Pergunta

  • Boa Tarde Amigos

    Tenho um GridView, onde tenho um RadioButton por linha.Meu objetivo e clicar nesse RadioButton e pagar o ID da linha, para utiliza-lo em uma operação.

    Me baseei no exemplo abaixo:

    http://techahead.wordpress.com/2008/04/01/aspnet-using-radio-button-inside-grid-view/

    Esse exemplo pega o conteudo de uma coluna atraves do click em um botao, porem ha um problema.
    Depois que eu clico no botao o RadioButton perde o foco, como que se o Checked fosse "False".

    Eu preciso fazer com que o Radio clicado, continue clicado apos a operacao e so mude se por acaso eu clicar em outro RadioButton.


    Muito Obrigado
    segunda-feira, 20 de julho de 2009 18:46

Respostas

Todas as Respostas

  • Olá Ventana,  não sei se resolve, mas você definiu a propriedade GroupName de cada RadioButton ? Defina um valor, para ficar uma seleção unica, defina autopostback = true, e crie um evento para este rabiobutton, por exemplo:


    public void rbOperacao_CheckedChanged(object sender, EventArgs e)
    {
    
    //pega o radio button
    RadioButton rb = (RadioButton)sender;
    
    //pega a linha do gridview respectiva
    GridViewRow row = (GridViewRow)rb.NamingContainer;
    
    //recupera o id da linha
    int id = (int)DataBinder.Eval(row.DataItem, "Id").ToString();
    
    //executar a operação
    
    }
    Com isso você consegue recupera a GridViewRow (para a linha do seu gridview) e o ID da linha respectiva...

    Para trabalhar melhor, utilize um UpdatePanel.

    Obs: Não sei se você conhece, mas um RadioButtonList resolveria seu problema, vale a pena dar uma olhada. Veja a propriedade SelectedValue.

    Espero que ajude
    um abraço
    Att,


    Felipe Oriani ...O rio atinge os seu objetivos porque aprendeu a contornas os obstáculos... por André Luiz
    segunda-feira, 20 de julho de 2009 19:13
  • Perdao, eu falei besteira.

    Na verdade tentei fazer com oradioButton e nao consegui, dai achei um exemplo com o Radio (do Html) que funcionou.

    E com ele que estou tenho problemas.


    Obrigado novamente por sua ajuda Felipe.

    segunda-feira, 20 de julho de 2009 19:21
  • Oi,

    Veja este artigo que demonstra o trabalho com checkbox : http://www.bufaloinfo.com.br/artigos/coluna48.asp

    Com radiobuttons é muito mais simples :

    - Use o mesmo exemplo do artigo, em que é criado um atributo adicional nas checkbox para guardar a chave do registro

    - Da mesma forma que no exemplo com checkbox, precisará guardar o ID do registro cujo radiobutton está marcado e marcar o  radiobutton novamente no evento rowdatabound. Siga o exemplo do artigo, com a pequena diferença de ser radiobutton e não checkbox.



    []'s

    Dennes

    *Treinamento de ASP.NET em SP 25/05 apenas 12x70,88 - http://www.bufaloinfo.com.br/cursos/aspnet2.asp

    *Treinamento de ASP.NET no Rio 01/08, http://www.bufaloinfo.com.br/cursos/aspnet2.asp

    Tels: (11) 3170-3056, (21) 2262-1368, (21) 9240-5134 E-Mail : Contato@bufaloinfo.com.br


    Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp
    terça-feira, 21 de julho de 2009 05:44
  • Bom Dia Amigos

    Estou analisando esse exemplo Dennes para ver o que acontece e estou muito agradecido.

    Na verdade mudei de novo.Percebi que realmente o RadioButton do ASP.NET e a melhor opcao.

    Achei um exemplo ontem que me permitiu chegar perto da resolucao do problema.

    http://www.codedigest.com/Articles/ASPNET/134_GridView_with_RadioButton_%E2%80%93_Select_One_at_a_Time.aspx

    Esse exemplo selecionada a linha clicada,deixando marcado apenas o RadioButton realmente clicado e pegando o conteudo de uma determinada coluna.

    Faltou apenas acopla-lo ao meu projeto mas ja estou fazendo isso.


    Obrigado mais uma vez e um abraço
    terça-feira, 21 de julho de 2009 13:49