如何检查组中是否检查了radiobutton

时间:2010-08-11 13:56:31

标签: asp.net .net vb.net radio-button

我有一组单选按钮,每组范围为5 - 27个单选按钮。如果组中的任何单选按钮被选中,我将1存储在db中,否则我存储0.现在我正在使用if循环检查每个单选按钮以查看它们是否被检查并设置数据库值。我也试图使用下面的代码。是否有一个好的/更好的方法来检查它们是否被检查?

当前代码:

'rname is radiobutton prefix for a given group
'cnt is number of radiobuttons in the group

Private Function RadioIsChecked(ByVal rname As String, ByVal cnt As Integer) As Integer
    Dim retval As Integer = 0
    For i = 0 To cnt - 1
        Dim rdbName As String = rname & i
        Dim rdb As New RadioButton()
        rdb = CType(Me.Page.FindControl(rdbName), RadioButton)
        If rdb.Checked Then
            retval = 1
        End If
    Next
    Return retval
End Function

注意:我不能使用单选按钮列表。我知道这可以通过这个轻松实现,但我想获得radiobutton的解决方案

5 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您还可以使用Request.Form("GroupNameGoesHere")获取该组中当前所选单选按钮的值(如果不存在,则为空字符串)。

答案 2 :(得分:0)

无论哪种方式,都取决于你。
只有在找到选中的项目后退出迭代,才能获得所需的性能提升。

您可以按如下方式修改迭代:

For i = 0 To cnt - 1
    Dim rdbName As String = rname & i
    Dim rdb As New RadioButton()
    rdb = CType(Me.Page.FindControl(rdbName), RadioButton)
    If rdb.Checked Then
        retval = 1
        Exit For
    End If
Next

答案 3 :(得分:0)

改为使用RadioButtonList。然后,您只需检查列表的“SelectedItem”属性。

请查看http://www.startvbdotnet.com/aspsite/controls/rblist.aspx示例。

答案 4 :(得分:0)

如果你使用如上所述的radiobutton列表,你可以做这样的事情。测试是否选择了某些内容。

<asp:RadioButtonList runat="server" ID="rbList">
      <asp:ListItem Text="Radio 1" />
      <asp:ListItem Text="Radio 2" />
      <asp:ListItem Text="Radio 3" />
</asp:RadioButtonList>


rbList.SelectedIndex > -1;