RadioButtonList retornando nulo

28/06/2010

0

Tenho um radioButonList que é alimentado por um método especifico e quando eu retorno o selectedValue o valor é sempre nulo mesmo quando eu seleciono uma opção.

Não entendi o que está acontecendo?

Código do meu default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="PDF_Gabarito" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Teste</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:RadioButtonList ID="rdoAlternativa" runat="server"
        onselectedindexchanged="rdoAlternativa_SelectedIndexChanged">
        </asp:RadioButtonList>    
        <br />
        <asp:Button ID="btnConfirma" runat="server" Text="Confirmar"
            onclick="btnConfirma_Click" />
         
    </div>
       
    </form>
</body>
</html>


Meu Método que faz a consulta em Default.aspx.cs:
private void carregaAlternativa()
    {
        DataSet ds = Alternativa.ConsultaAlternativas(idQuestao);

        rdoAlternativa.DataSource = ds;
        rdoAlternativa.DataValueField = ds.Tables[0].Columns["id"].ToString();
        rdoAlternativa.DataTextField = ds.Tables[0].Columns["Alternativa"].ToString();
        rdoAlternativa.DataBind();
       
    }

Até aqui... Tudo lindo!!! Agora o método que eu tento recuperar a opção selecionada:

protected void btnConfirma_Click(object sender, EventArgs e)
    {
        string alternativa = rdoAlternativa.SelectedItem ;
    }

Alguém viu algo que não estou vendo?

Bjos 
 
Natasha

Natasha

Responder

Posts

29/06/2010

Wellington Camargo

Natasha, dentro do RadioButtonList você precisa adicionar os itens referentes às suas opções. Adiciona assim:

         <asp:RadioButtonList ID="rblOpcoes" runat="server" OnSelectedIndexChanged="rblOpcoes_SelectedIndexChanged">
        <asp:ListItem Text="Zero" Value="0" Selected="True"></asp:ListItem>
        <asp:ListItem Text="Um" Value="1"></asp:ListItem>
        <asp:ListItem Text="Dois" Value="2"></asp:ListItem>
        <asp:ListItem Text="Três" Value="3"></asp:ListItem>
        <asp:ListItem Text="Quatro" Value="4"></asp:ListItem>
        </asp:RadioButtonList>

Daí só adicionar a codificação necessária no evento SelectedIndexChanged.
Qualquer dúvida, posta aê!
Abraços.
Responder

29/06/2010

Wellington Camargo

Só pra complementar, no evento SelectedIndexChanged, você recupera o item que o usuário selecionou com esse exemplo:

protected void rblOpcoes_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Verifica qual foi a opção selecionada
        if (rblOpcoes.SelectedValue == "0")
        { 
            //algo acontece
        }
        else if (rblOpcoes.SelectedValue == "1")
        {
            //algo acontece
        }
        else if (rblOpcoes.SelectedValue == "2")
        {
            //algo acontece
        }
        else if (rblOpcoes.SelectedValue == "3")
        {
            //algo acontece
        }
        else if (rblOpcoes.SelectedValue == "4")
        {
            //algo acontece
        }
    }

Responder

29/06/2010

Marcio Silveira

Natasha,

Eu só faria uma coisa diferente:

private void carregaAlternativa()
    {
        DataSet ds = Alternativa.ConsultaAlternativas(idQuestao);

        rdoAlternativa.DataSource = ds;
        rdoAlternativa.DataValueField = "id";
        rdoAlternativa.DataTextField = "Alternativa";
        rdoAlternativa.DataBind();
       
    }
Inclusive, eu costumo colocar essas propriedades já no RadioButtonList (propriedades DataTextField e DataValeuField);

assim:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="PDF_Gabarito" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Teste</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:RadioButtonList ID="rdoAlternativa" runat="server"
        onselectedindexchanged="rdoAlternativa_SelectedIndexChanged" DataTextField="Alternativa" DataValeuField="id">
        </asp:RadioButtonList>    
        <br />
        <asp:Button ID="btnConfirma" runat="server" Text="Confirmar"
            onclick="btnConfirma_Click" />
         
    </div>
       
    </form>
</body>
</html>Mas do jeito que você fez também dá certo.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar