我有一组单选按钮,每组范围为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的解决方案
答案 0 :(得分:1)
您是否可以使用radiobuttonlist
请参阅:http://www.java2s.com/Code/ASP/Asp-Control/GetselecteditemvaluefromaspradiobuttonlistVBnet.htm
答案 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;