Как проверить, проверена ли кнопка в группе? - PullRequest
1 голос
/ 11 августа 2010

У меня есть группа радиокнопок, каждая группа находится в диапазоне от 5 до 27 радиокнопок. И если какой-либо переключатель в группе отмечен, я сохраняю 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

Примечание: я не могу использовать список переключателей. Я знаю, что это может быть легко достигнуто с помощью этого, но я хочу получить решение для radiobutton

Ответы [ 5 ]

1 голос
/ 11 августа 2010

Можно ли использовать список радиобутонтов

см: http://www.java2s.com/Code/ASP/Asp-Control/GetselecteditemvaluefromaspradiobuttonlistVBnet.htm

0 голосов
/ 11 августа 2010

Если вы используете список радиокнопок, как уже упоминалось, вы можете сделать что-то вроде этого.Чтобы проверить, было ли что-то выбрано.

<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;
0 голосов
/ 11 августа 2010

Сделайте вместо этого RadioButtonList. Затем вы можете просто проверить свойство SelectedItem в Списке.

Посмотрите на http://www.startvbdotnet.com/aspsite/controls/rblist.aspx для примеров.

0 голосов
/ 11 августа 2010

В любом случае, решать вам.
Вы получите необходимое повышение производительности, только если выйдете из итерации после нахождения отмеченного элемента.

Вы можете изменить итерацию следующим образом:

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 голосов
/ 11 августа 2010

Вы также можете использовать Request.Form("GroupNameGoesHere"), чтобы получить значение текущей выбранной радиокнопки в этой группе (или пустую строку, если ее не существует).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...