how to get the selected item value of RadioButtonList which is inside Accordion ???

Hello experts,

           I am using a RadiobuttonList inside Accordion. The Radiobuttonlist is set to AutoPostBack = true. So I want to capture the value of selectedItem of radioButtonlist when the item is selected.I want to do this in c#.

Urgent..Thanks.
<div class="AccordionPanel">
                                                <ajaxToolkit:Accordion ID="Accordion1" runat="server" SelectedIndex="1" FadeTransitions="true" 
                                                FramesPerSecond="40" TransitionDuration="250" AutoSize="None" RequireOpenedPane="false" 
                                                HeaderCssClass="HeaderTab" ContentCssClass="ContentTab">
                                                  
                                                </ajaxToolkit:Accordion>
                                            </div>
 
 
public void accordion()
    {
        DataSet dsDistibutors = Fund.GetAllDistibutor();
        AccordionPane ap1 = new AccordionPane();
        ap1.HeaderContainer.Controls.Add(new LiteralControl("Select Distributor"));
        ap1.ContentContainer.Controls.Add(GetRadioButtonList());
        Accordion1.Panes.Add(ap1);
    }
    private RadioButtonList GetRadioButtonList()
    {
        DataSet dsDistibutors = Fund.GetAllDistibutor();
        RadioButtonList RBList = new RadioButtonList();
        RBList.DataSource = dsDistibutors;
        RBList.DataTextField = "USER_NM";
        RBList.DataValueField = "USER_NM";
        RBList.DataBind();
        RBList.AutoPostBack = true;
        return RBList;
    }

Open in new window

srk1982Asked:
Who is Participating?
 
NazoUKConnect With a Mentor Commented:
Sorry, I wasn't very clear there. The line

RBList.SelectedIndexChanged +=new EventHandler(RBList_SelectedIndexChanged);

is adding the event handler. Just add that line into GetRadioButtonList() after the line RBList.AutoPostBack = true;

Note that to work properly the GetRadioButtonList() function must be called every postback but I assume you're probably doing that anyway or your radiobuttonlist would disappear after you change the selectedindex.
0
 
NazoUKCommented:
Add an event Handler in your GetRadioButtonList() function:

RBList.SelectedIndexChanged +=new EventHandler(RBList_SelectedIndexChanged);

then add a new function to handle the event:

protected void RBList_SelectedIndexChanged(object sender, EventArgs e)
{
       RadioButtonList RBList = sender as RadioButtonList;
       ...
}

You can then get the selected value from within this new function
0
 
srk1982Author Commented:
Hi NazoUK,

        i am using vs2005.   I know where to add the eventhandler in vs2003.
        where to add this vs2005???


Thanks....
0
 
agentegCommented:
Catching the event only allow you to get the selected value when the user changes it, but if you want to get it whenever you want (without using global variables), even if the user don't change the value, try this:

First, set the Tag property of the RadioButtonList as, ie, "RBList"...

then:

object  FindRBListValue(Control control)
{
    foreach(Control child in control.Controls)
      {
        if (child.Tag is string)
            if (string.Compare("RBList", child.Tag) == 0)
              return (child as RadioButtonList ).Value;
       object childs = FindRBListValue(child);
      if (childs != NULL)
         return childs;
       }
return null;
}


Call this method like this:

...
object listValue = FindRBListValue(this);
if (listValue == NULL)
   throw (new Exception("Could not found Radio Button List");


Try this, I'm not good at ASP.net, but should make the deal...

0
 
NazoUKCommented:
That's inefficient and completely unnecessary though, if he wants to find the radio button list he can do it using the FindControl method of the Accordion.

RadioButtonList rbl = (RadioButtonList) ap1.ContentContainer.FindControl("<RBLID>")

but I'm guessing as he's set autopostback=true he wants to react to that event.
I just noticed the ID property of the RadioButtonList isn't being set though which is probably a good idea.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.