Использование FindControl, чтобы получить выбранный переключатель через GroupName - PullRequest
0 голосов
/ 23 января 2019

Я создаю группы радиокнопок динамически. Каждая группа имеет уникальное имя группы. Когда пользователь нажимает кнопку «Отправить», я хотел бы получить значение переключателя, выбранного в каждой группе. Я использую следующий код для генерации:

                        RadioButton button = new RadioButton();

                        button.Text = btn.getName();
                        button.Checked = false;
                        button.GroupName = btn.getBtnGroupID();
                        Panel1.Controls.Add(button);

Как использовать FindControl или альтернативы, чтобы получить выбранную / отмеченную кнопку в каждой группе кнопок?

Ответы [ 3 ]

0 голосов
/ 23 января 2019

Вы можете просто сделать это:

RadioButton btnTest = (RadioButton)Panel1.FindControl("radioButtonId");

 if (btnTest.Checked == false) { 
 // do something

}
0 голосов
/ 23 января 2019

Попробуйте это

    private List<RadioButton> rblist = new List<RadioButton>();
    private void GetCheckedRB(Panel pnl, string groupName)
    {
        foreach (Control ctrl in pnl.Controls)
        {
            if (ctrl is RadioButton)
            {
                RadioButton rb = (RadioButton)ctrl;                    
                if (rb.GroupName == groupName && rb.Checked)
                    rblist.Add(rb);
            }
        }
        //Put action here
        //MessageBox.Show(String.Join(", ", rblist.Select(x => x.Name).ToArray().ToString()));
    }
0 голосов
/ 23 января 2019
public static string GetRadioButtonValue(ControlCollection ctrlColl, string groupName)
{
  var selectedRbtn= controls.OfType<RadioButton>().FirstOrDefault(rb => rb.GroupName == groupName && rb.Checked);
  return selectedRbtn== null ? string.Empty :selectedRbtn.Attributes["Value"];

}

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