在asp.net中动态更改radiobuttonlist名称

时间:2018-04-19 14:39:56

标签: c# asp.net

在我的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!";
} 

1 个答案:

答案 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的项目。如果已经选择了一个,它会将所选的单选按钮更改为第一个。