2010-08-11 140 views
1

我有一組單選按鈕,每個組的範圍是5 - 27個單選按鈕。如果組中的任何一個單選按鈕被選中,我在db中存儲1,否則我存儲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 

注:我不能用單選按鈕列表。我知道這很容易使用這個來實現,但是我想要得到的單選按鈕

回答

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 
0

您還可以使用Request.Form("GroupNameGoesHere")來獲取值該組中當前選定的單選按鈕(如果不存在則爲空字符串)。

0

如果你使用上面提到的單選按鈕列表,你可以做這樣的事情。測試是否選擇了某些東西。

<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; 
相關問題