0

有一个单选按钮列表,我正在用字符串填充它,并且想知道如何在给定时间内获取所选元素的值并将其放入字符串中。但是使用命令 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";

                    }
                }
4

2 回答 2

1

看来您正在页面加载时填充 RadioButtonList - 如果是这样 - 请确保您使用 If/Then/Postback 块包围 RadioButtonList 的填充:如果不是 Page.IsPostBack then ' 填充您的 RBL end if

例如:

        if (!IsPostBack)
        {
            loadradiobuttonlist();
        }
于 2014-01-03T18:20:25.327 回答
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是您的单选按钮列表选择索引。使用它从列表中选择项目。

于 2013-08-23T10:49:00.480 回答