有一个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";
}
}
答案 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选择索引。用它来从列表中选择项目。