单选按钮列表未正确选择新值

时间:2013-07-18 18:15:59

标签: c# asp.net radiobuttonlist

我无法从单选按钮列表中获取单选按钮以在IF语句中被选中。当IF为真时,其他一切都正常工作,除此之外。 Request Pending是默认值,但是当IF为True时,我需要能够选择“Waiting for Approval”按钮。

我的HTML代码是:

<asp:RadioButtonList ID="rbGiftStatus" RepeatDirection="Horizontal" 
    runat="server" TabIndex="3">
    <asp:ListItem Text="Request Pending" Selected="True" Value="1"></asp:ListItem>
    <asp:ListItem Text="Check Pending" Value="2"></asp:ListItem>
    <asp:ListItem Text="Completed" Value="3"></asp:ListItem>
    <asp:ListItem Text="Waiting for Approval" Value="4"></asp:ListItem>
</asp:RadioButtonList>

我的C#是这样的:

rbGiftStatus.SelectedIndex = 4;

我尝试过其他方式:

rbGiftStatus.Text = "4";
rbGiftStatus.SelectedItem = "4";
rbGiftStatus.SelectedValue = "4";

它们似乎都没有用,我无法弄明白为什么

3 个答案:

答案 0 :(得分:2)

SelectedIndex是正确的方法:Set Radiobuttonlist Selected from Codebehind

但是,您使用的SelectedIndex为4,超出了数组的范围。 C#是基于0的索引,因此第一项是索引0.这将使您的第4项索引为3。

rbGiftStatus.SelectedIndex = 3;应该这样做。

答案 1 :(得分:2)

您可以尝试使用

rbGiftStatus.SelectedIndex = 3; //index max is 3 for 4 elements

答案 2 :(得分:2)

索引以0而不是1开头。因此,如果RBL中有4个项目,则索引范围将为0-3。在这种情况下,您调用的索引为4,但不存在。

尝试rbGiftStatus.SelectedIndex = 3;