使用FindControl通过GroupName获取选定的单选按钮

时间:2019-01-23 05:29:33

标签: c# asp.net webforms

我正在动态创建单选按钮组。每个组都有唯一的组名。当用户单击“提交”按钮时,我想获取每个组中选中的单选按钮的值。我使用以下代码生成:

                        RadioButton button = new RadioButton();

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

如何使用FindControl或替代方法在每个按钮组中获取选中/选中的按钮?

3 个答案:

答案 0 :(得分:0)

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"];

}

答案 1 :(得分:0)

您可以简单地执行以下操作:

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

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

}

答案 2 :(得分:0)

尝试一下

    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()));
    }