检查是否在C#中选择了所有单选按钮

时间:2019-03-20 19:26:38

标签: c# asp.net sql-server radio-button

我大约有75个单选按钮(在您问为什么需要那么多单选按钮之前,先说我需要它们),我将它们按5个不同的组进行了分组。因此,我的问题是,是否有一种方法可以验证他们是否可以在提交任何内容之前在每个组中至少选择一个单选按钮。所以我有15个这样的小组。

<h4 style="">1 Question? </h4>

<asp:RadioButton ID="RadioButton1"  runat="server" Text="Strongly Disagree" GroupName="Gr1" />
<asp:RadioButton ID="RadioButton2"  runat="server" Text="Disagree" GroupName="Gr1" />
<asp:RadioButton ID="RadioButton3"  runat="server" Text="Uncertain" GroupName="Gr1" />
<asp:RadioButton ID="RadioButton4"  runat="server" Text="Agree" GroupName="Gr1" />
<asp:RadioButton ID="RadioButton5"  runat="server" Text="Strongly Agree" GroupName="Gr1" />

在后面的代码中,单击按钮,我将得到类似的内容。这意味着我想先检查用户是否从每个组中选择了至少一个单选按钮,然后再使用SQL Command提交某些内容。每个CMD都有不同的查询

if (RadioButton1.Checked)
{
    SqlCommand cmd = new SqlCommand("My query here", con);
    cmd.ExecuteNonQuery();
}

if (RadioButton2.Checked)
{
    SqlCommand cmd = new SqlCommand("My query here", con);
    cmd.ExecuteNonQuery();
}

1 个答案:

答案 0 :(得分:2)

以下方法将带给您RadioButton控件,它们是父级Control的直接子代:

private IEnumerable<RadioButton> GetRadioButtons(Control container, string groupName)
{
    return container.Controls
        .OfType<RadioButton>()
        .Where(i => i.GroupName == groupName);
}

例如,如果组名称为“ Gr1”的单选按钮是表单的直接子代,则可以这样获得它们:

var radioButtons = GetRadioButtons(Form, "Gr1");

可以通过以下方法检查是否选中了它们:

var radioButtonCheckedInGr1 = GetRadioButtons(Form, "Gr1").Any(i => i.Checked);

希望这会有所帮助。