【问题标题】:Radio button list malfunction单选按钮列表故障
【发布时间】:2021-01-23 14:22:23
【问题描述】:

如何检查单选按钮列表中的单选按钮是否被选中?

我使用了 if radiobuttonlist1.selectedindex > -1 然后我检查了一个单选按钮,但它没有读取选定的单选按钮,它总是转到 else 语句。

这是我的代码:

Dim rl1 As RadioButtonList = New RadioButtonList()

If rbl1.SelectedIndex > -1

    Label2.Text = "Checked"

Else

    Label2.Text = "Not Checked" 

End If

【问题讨论】:

  • 此处不应包含c#标签,因此我决定将其删除。
  • 看来你应该有Checked 属性。你试过this吗?从同一个站点您可以参考VB2010 here
  • 我删除了 Visual Studio 标签,因为它与代码相关,而不是环境

标签: asp.net vb.net webforms vb.net-2010


【解决方案1】:

你可以这样做。

转到您的 RadioButton_CheckedChanged 活动并添加此代码

If RadioButton1.Checked = True Then
    Me.Label1.Text = "Checked"
Else
    Me.Label1.Text = "UnChecked"
End If

【讨论】:

  • 我不能这样做,我正在动态添加单选按钮。
【解决方案2】:

您是否在代码中使用了正确的变量名?您正在声明 rl1 但正在验证 rbl1。如果不是这样,请检查以下代码是否有帮助:

    Dim rl1 As RadioButtonList = New RadioButtonList()
    
    'Just adding some items and selecting one of them for demonstration
    rl1.Items.Add(New ListItem("Option 1", "1"))
    rl1.Items.Add(New ListItem("Option 2", "2"))
    rl1.SelectedIndex = 1
    
    If rl1.SelectedIndex > -1 Then

        MsgBox("Checked")

    Else

        MsgBox("Not Checked")

    End If

【讨论】:

  • 嗨,在我的代码中它是 rl1,但在这里我错误地添加了 b。但也在我的代码中我添加了这样的项目 rl1.Items.Add(New ListItem(qdesc, rl1.ID)) qdesc 是来自数据库的问题,rl1.ID 是 rl1.ID =“A”。我正在循环代码以填充 4 个问题,每个问题都有 1 个单选按钮。问题是当我选择一个问题时,它没有阅读选定的问题,所以代码总是阅读“未选中”。
【解决方案3】:
Dim rl1 As RadioButtonList = New RadioButtonList()

所以您创建了上述内容?以上内容如何知道或与网页有什么关系?您在代码中创建的某些变量与您在网页上拥有的控件之间存在零关系?

你想要

MyRadioButtonOnTheWebPage.Selectedindex

大概是这样的:

RadioButtonList1.Selected 索引。

因此,您不会突然创建 + 暗淡一些与实际网页上的实际单选按钮列表无关的变量。我的意思是,如果您的网页上有 3 个 RadioButton 列表,那么上面指的是哪一个?

所以,如果你有一个像这样的 Radiobuttion 列表“1”:

        <asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True" 
            RepeatDirection="Horizontal">
            <asp:ListItem>One</asp:ListItem>
            <asp:ListItem>Tow</asp:ListItem>
            <asp:ListItem>Three</asp:ListItem>
        </asp:RadioButtonList>

然后是按钮回发,或者甚至说为单选按钮列表设置 autopostback = true。

然后在代码中你可以使用:

    Debug.Print(RadioButtonList1.SelectedIndex)
    Debug.Print(RadioButtonList1.SelectedValue)

所以上面会得到索引值,或者单选按钮的实际值。

如果您有 auto postback = true,那么您可以/将使用这样的事件(已更改),当您选择/更改单选按钮中的选择时将触发该事件

Protected Sub RadioButtonList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RadioButtonList1.SelectedIndexChanged

    Debug.Print(RadioButtonList1.SelectedIndex)
    Debug.Print(RadioButtonList1.SelectedValue)

End Sub

【讨论】:

  • 嗨,事实上我不明白你的意思 Mr.Albert 但在我的代码中我添加了 4 个类似 rl1.Items.Add(New ListItem(qdesc, rl1.ID)) 的项目他们使用循环。 qdesc 是数据库中的一个问题,而 rl1.ID ="A" 我在代码中循环以填充 4 个问题,每个问题有 1 个单选按钮。问题是当我选择一个问题时,它没有阅读选定的问题,因此代码总是转到包含“未检查”的 else 语句。检查是否选择了单选按钮,我使用了 If rl1.SelectedIndex > -1 Then Label2.Text = "checked"
  • 如果您循环将值添加到单选按钮列表,我的示例并不重要。您必须发布更多代码和更多标记。不清楚你怎么能说 3 或 10 个 readio butotns。我假设这里正在使用某种中继器?您必须发布标记,因为我发布的内容适用于一个按钮列表 - 如果您循环添加 2 个或 15 个选项到一个单选按钮,这并不重要。完全不清楚的是您如何渲染并设置了在表单上拥有 2 个或 8 个或 10 个单选按钮的能力。如果没有这些信息,我们就是在蒙着眼睛在黑暗中玩飞镖。
猜你喜欢
  • 1970-01-01
  • 2023-03-31
  • 2013-08-13
  • 2017-03-21
  • 1970-01-01
  • 2013-12-16
  • 1970-01-01
  • 2016-10-31
  • 1970-01-01
相关资源
最近更新 更多