RadioButtonList retornando nulo
28/06/2010
0
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
Posts
29/06/2010
Wellington Camargo
<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.
29/06/2010
Wellington Camargo
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 } }
29/06/2010
Marcio Silveira
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.
Clique aqui para fazer login e interagir na Comunidade :)