设置从代码隐藏中选择的 Radiobuttonlist

Posted

技术标签:

【中文标题】设置从代码隐藏中选择的 Radiobuttonlist【英文标题】:Set Radiobuttonlist Selected from Codebehind 【发布时间】:2011-08-05 10:46:24 【问题描述】:

嘿,我有一个单选按钮列表,并试图根据会话变量将其中一个单选按钮设置为选中,但事实证明这是不可能的。

<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 设置为选中?

【问题讨论】:

listitem 没有 id 属性 【参考方案1】:

我们可以通过值来改变项目,这里是诀窍:

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

【讨论】:

【参考方案2】:
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]

【讨论】:

radio_btn_lst : 你的单选按钮列表 ID【参考方案3】:

试试这个选项:

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

【讨论】:

这个解决方案对我有用,而 Marquito 的由于某种原因没有。原因可能是因为我为第一项设置了 【参考方案4】:

在我看来,最好的选择是将Value 属性用于ListItem,该属性在RadioButtonList 中可用。

我必须指出,ListItem 确实 具有 ID 属性。

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

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

或者,您可以提供一个 int 给 SelectedIndex。

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

【讨论】:

【参考方案5】:

你可以这样做:

radio1.SelectedIndex = 1;

但这是最简单的形式,随着 UI 的增长,很可能会出现问题。例如,如果团队成员在option2 上方的RadioButtonList插入 一个项目,但不知道我们在代码隐藏中使用幻数 来选择- 现在应用选择了错误的索引!

Maybe you want to look into using FindControl in order to determine the ListItem actually required, by name, and selecting appropriately.例如:

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

【讨论】:

我想知道如何在 ListItem 上执行 FindControl,因为它缺少 ID 属性。我能回忆起的唯一属性是 Selected、Enabled、Text 和 Value。有什么想法吗? listitem 没有 id 属性,因此我会选择***.com/a/11582680/1271898(Marquito 的回答)

以上是关于设置从代码隐藏中选择的 Radiobuttonlist的主要内容,如果未能解决你的问题,请参考以下文章

将值设置为从代码隐藏中输入 type="date"

隐藏选择框中已选择的选项 ReactJS

无法从Selenium Webdriver中的下拉列表中选择隐藏元素

yii怎么设置文本框禁止输入,隐藏文本框

delphi combobox 如何隐藏下拉列表

iOS可以隐藏应用吗