设置从代码背后选择的Radiobuttonlist

时间:2011-04-14 10:51:15

标签: asp.net radiobuttonlist

嘿,我有一个radiobuttonlist,并尝试根据会话变量设置其中一个radiobuttons,但证明是不可能的。

<asp:radiobuttonlist id="radio1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
   <asp:listitem id="option1" runat="server" value="All"/>
   <asp:listitem id="option2" runat="server" value="1" />
   <asp:listitem id="option3" runat="server" value="2" />
</asp:radiobuttonlist> 

即如何在后面的代码中将option2设置为选中?

5 个答案:

答案 0 :(得分:19)

在我看来,最好的选择是使用Value ListItem的{​​{1}}属性,RadioButtonList

我必须说明ListItem NOT 拥有ID属性。

因此,在您的情况下,选择第二个元素(option2):

// SelectedValue expects a string
radio1.SelectedValue = "1"; 

或者,你可以用非常相同的方式向SelectedIndex提供一个int。

// SelectedIndex expects an int, and are identified in the same order as they are added to the List starting with 0.
radio1.SelectedIndex = 1; 

答案 1 :(得分:15)

你可以这样做:

radio1.SelectedIndex = 1;

但这是最简单的形式,随着UI的增长,很可能会出现问题。比如说,如果团队成员RadioButtonList option2上面插入项目,但不知道我们在代码中使用魔术数字 -behind to select - 现在应用程序选择了错误的索引!

也许您希望使用FindControl来确定ListItem实际需要的名称,并进行适当选择。例如:

//omitting possible null reference checks...
var wantedOption = radio1.FindControl("option2").Selected = true;

答案 2 :(得分:14)

尝试此选项:

radio1.Items.FindByValue("1").Selected = true;

答案 3 :(得分:2)

我们可以按值更改项目,这是诀窍:

radio1.ClearSelection();
radio1.Items.FindByValue("1").Selected = true;// 1 is the value of option2

答案 4 :(得分:0)

var rad_id = document.getElementById('<%=radio_btn_lst.ClientID %>');
var radio = rad_id.getElementsByTagName("input");
radio[0].checked = true;

//this for javascript in asp.net try this in .aspx page

//如果您选择其他单选按钮增加[0]至[1]或[2]