在我的aspx文件中,我有一个下拉列表
<asp:DropDownList runat="server" ID="Dlist" CssClass="dropdown" AutoPostBack="true" SelectedIndexChanged="CtrlChanged">
<asp:ListItem Text="Select item" Value="1"></asp:ListItem>
</asp:DropDownList>
我有一个单选按钮列表
<asp:RadioButtonList ID="RadioButtonList1" RepeatColumns="1"
RepeatDirection="Vertical" RepeatLayout="Table" runat="server" AutoPostBack="true">
<asp:ListItem>Option 1</asp:ListItem>
<asp:ListItem>Option 2</asp:ListItem>
</asp:RadioButtonList>
现在,我想在使用C#从下拉列表中选择某些内容后,更改单选按钮列表中的一个或两个单选按钮的名称。以下是我的尝试,但没有奏效。
protected void CtrlChanged(Object sender, EventArgs e) {
//attempting to change text of first radio button when item has been selected from dropdownlist
RadioButtonList1.SelectedIndex = 0;
RadioButtonList1.SelectedItem.Text = "Text changed!";
}
答案 0 :(得分:3)
首先,它是OnSelectedIndexChanged
,而不是SelectedIndexChanged
。 RadioButtonList的ListItems是基于索引的,所以你需要像这样访问它们:
protected void CtrlChanged(object sender, EventArgs e)
{
RadioButtonList1.Items[0].Text = "NewValue 1";
RadioButtonList1.Items[1].Text = "NewValue 2";
}
您的方式确实会更改文本,但仅适用于您设置SelectedIndex的项目。如果已经选择了一个,它会将所选的单选按钮更改为第一个。