Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.Net c# Which radio button in a given GroupName is selected?

I have 30 individual RadioButtons. I can not use a RadioButtonList. There are 3 groups of buttons. Each group has a unique GroupName. Everything works properly in the web browser. How can i tell on a post back which button is selected within each of the given GroupsNames?

EDIT: the function i used

private string getRadioValue(ControlCollection clts, string groupName)
{
    string ret = "";
    foreach (Control ctl in clts)
    {
        if (ctl.Controls.Count != 0)
        {
            if (ret == "")
                ret = getRadioValue(ctl.Controls, groupName);
        }

        if (ctl.ToString() == "System.Web.UI.WebControls.RadioButton")
        {
            RadioButton rb = (RadioButton)ctl;
            if (rb.GroupName == groupName && rb.Checked == true)
                ret = rb.Attributes["Value"];
        }
    }
    return ret;
}
like image 407
Justin808 Avatar asked Dec 06 '10 23:12

Justin808


2 Answers

You have to check all radiobuttons checked property.
There is no simple way to check it by groupName. (you can write method that scan all radiobuttons in some control container and return list of pairs groupName, control checked, but easier is to scan all rb)

like image 100
Marek Kwiendacz Avatar answered Oct 20 '22 22:10

Marek Kwiendacz


Attach the same handler to each RadioButton. Then check the properties you are looking for. Set Enable postback to true.

protected void RadioButton1_30_CheckedChanged(object sender, EventArgs e)
{
    RadioButton rb = (RadioButton)sender;        
    string txtVal = rb.Text;
    string groupName= rb.GroupName;
    int tmpInt;
    Int32.TryParse(txtVal, out tmpInt);

}
like image 31
RickIsWright Avatar answered Oct 20 '22 22:10

RickIsWright