Проверьте, все ли переключатели выбраны в C # - PullRequest
0 голосов
/ 20 марта 2019

У меня около 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. У каждого 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 Ответ

2 голосов
/ 21 марта 2019

Следующий метод вернет вам 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);

Надеюсь, это поможет.

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