RadioButtonList为空值

时间:2013-08-23 00:55:10

标签: c# asp.net radiobuttonlist

有一个radiobutton列表,我正在填充Strings,并想知道如何在给定时间内获取所选元素的值并将其抛出到String中。但是使用命令SelectedValue和SelectedItem只有空值。

在执行同一页面期间,此单选按钮列表会被多次填充。

//Where do you fill the RadioButtonList
public void MostraImagensCarrefadas()
{
    List<String> files = new manFile().getListFilesForDirectory(this, MAE.DIRETORIO_TEMP_IMG);

    rbImagemPrincipal.Items.Clear();

    if (files != null)
    {
        foreach (String item in files)
        {
            rbImagemPrincipal.Items.Add(new ListItem(item));
        }
    }
}


//As it is in aspx
<div>
<asp:RadioButtonList ID="rbImagemPrincipal" runat="server" RepeatDirection="Vertical" AutoPostBack="false" OnSelectedIndexChanged="rbImagemPrincipal_SelectedIndexChanged"></asp:RadioButtonList>

 //where only encounter null values ​​when trying to get the selected item (clicked)
 //Nothing I do is the value obtained direferente null.
if (rbImagemPrincipal.SelectedItem != null)
                {
                    if (rbImagemPrincipal.SelectedItem.ToString() == str)
                    {
                        imagem.imagemPrincipal = "SIM";

                    }
                }

2 个答案:

答案 0 :(得分:1)

看来你正在填充页面加载的RadioButtonList -  如果是这样 - 请确保用一个包围RadioButtonList的人口  如果/ Then / Postback阻止:  如果不是Page.IsPostBack那么  '填充你的RBL  结束如果

例如:

        if (!IsPostBack)
        {
            loadradiobuttonlist();
        }

答案 1 :(得分:0)

首先,这是让你知道价值的页面,而不是应用程序得到它。

因此,您需要一个ScriptManager和Timer,它们都是Ajax扩展。将它们添加到页面中。

protected void Page_Load(object sender, EventArgs e)
{
    Timer1.Interval = 2000; // set your interval
}
protected void Timer1_Tick(object sender, EventArgs e)
{
     int result =  RadioButtonList1.SelectedIndex;
}

result是您的radiobuttonlist选择索引。用它来从列表中选择项目。