add event dynamically for each dynamically added AccordionPane?

Last post 12-06-2006 10:48 AM by brendalisa. 2 replies.

Sort Posts:

  • add event dynamically for each dynamically added AccordionPane?

    11-29-2006, 1:26 PM
    • Member
      91 point Member
    • brendalisa
    • Member since 11-29-2006, 11:02 AM
    • Posts 40

    I need a little help if you have a few seconds.  I'm adding AccordionPanes dynamically to an Accordion.  I now don't know what to do from here.  I need to dynamically add events to the Panes so when the user clicks on the Header, it will do something.  This is what I have so far:

    List<LinkButton> addresses = new List<LinkButton>();
    LinkButton link = new LinkButton();
    link.Text =
    "123 Main St, Phoenix, AZ, 85041";
    addresses.Add(link);
    LinkButton link2 = new LinkButton();
    link2.Text =
    "658 Alta Vista Rd, Phoenix, AZ, 85041";
    addresses.Add(link2);
    AccordionPane pane;

    int name = 1;

    foreach (LinkButton s in addresses)
    {
    pane =
    new AccordionPane();

    //Header
    pane.HeaderContainer.Controls.Add(s);

    //Content

    LinkButton

    documentsLink = new LinkButton();
    documentsLink.Text = "< Title Documents";

    Accordion1.Controls.Add(pane);

    Accordion1.FadeTransitions =

    true;

    Accordion1.TransitionDuration =

    250;

    Accordion1.FramesPerSecond =

    40;

    Accordion1.SelectedIndex =

    0;

    name++;

    }

     

    Am I doing this completely wrong?  How can I add events to the AccordioPanes?

    Thanks for your help!!!

    Brenda
  • Re: add event dynamically for each dynamically added AccordionPane?

    11-29-2006, 7:43 PM
    • Member
      91 point Member
    • brendalisa
    • Member since 11-29-2006, 11:02 AM
    • Posts 40

    Okay, I have this now which works.  Put I don't know how to programmatically have the panes collapse and stuff.  Any ideas?  Thanks!!!

    protected

    void Page_Load(object sender, EventArgs e)

    {

    AccordionPane pane;

    bool altColor = false;

    Dictionary<int, string> dic = new Dictionary<int, string>();

    dic.Add(

    1, "123 Main St, Phoenix, AZ, 85041");

    dic.Add(

    2, "658 Alta Vista Rd, Phoenix, AZ, 85041");

     

    foreach (KeyValuePair<int, string> pair in dic)

    {

    LinkButton link = new LinkButton();

    link.CommandArgument =

    Convert.ToString(pair.Key);

    link.Text = pair.Value;

    link.Command +=

    new CommandEventHandler(lnk_Command);

    pane =

    new AccordionPane();

    pane.HeaderContainer.Controls.Add(link);

    pane.HeaderContainer.Collapsed =

    false;

    pane.HeaderContainer.Wrap =

    false;

     

    if (altColor)

    {

    pane.BackColor =

    Color.RosyBrown;

    altColor =

    false;

    }

    else

    {

    pane.BackColor =

    Color.Gray;

    altColor =

    true;

    }

    //Content

    LinkButton documentsLink = new LinkButton();

    documentsLink.Text =

    "< Title Documents";

    pane.ContentContainer.Controls.Add(documentsLink);

    Accordion1.Panes.Add(pane);

    Accordion1.FadeTransitions =

    true;

    Accordion1.TransitionDuration =

    250;

    Accordion1.FramesPerSecond =

    40;

    Accordion1.SelectedIndex =

    0;

    }

     

     

     

     

    }

    protected void lnk_Command(object sender, CommandEventArgs e)

    {

    LinkButton lnk = (LinkButton) sender;

    System.Diagnostics.

    Debug.WriteLine(lnk.CommandArgument);

     

    }

    Brenda
  • Re: add event dynamically for each dynamically added AccordionPane?

    12-06-2006, 10:48 AM
    • Member
      91 point Member
    • brendalisa
    • Member since 11-29-2006, 11:02 AM
    • Posts 40

    The LinkButtons I'm adding into the Content section of the accordion pane don't work.  It's like they are losing the command I give it in this line: 

    detailsBtn.Command += new CommandEventHandler(lnk_CommandDetails);

    Any ideas why?  Do I need to use a template?  If so, how?  There are not many samples out there on AJAX so I really need your help.  Thanks! 

    Brenda
Page 1 of 1 (3 items)