Accordion动态添加AccordionPane

 

代码
   
     
<% @ Control Language = " C# " AutoEventWireup = " true " Codebehind = " Menu.ascx.cs " Inherits = " Web.Controls.Menu " %>
<% @ Register Assembly = " AjaxControlToolkit " Namespace = " AjaxControlToolkit " TagPrefix = " ajaxToolkit " %>
< div style ="width: 100%; text-align: left;" >
< ajaxToolkit:Accordion ID ="MyAccordion" runat ="Server" SelectedIndex ="0" HeaderCssClass ="accordionHeader"
HeaderSelectedCssClass
="accordionHeaderSelected" ContentCssClass ="accordionContent"
AutoSize
="None" FadeTransitions ="true" TransitionDuration ="250" FramesPerSecond ="40"
RequireOpenedPane
="false" SuppressHeaderPostbacks ="true" >
< Panes >
</ Panes >
< HeaderTemplate >
< div style ="width: 150px; height: 35px; color: White; background-image: url('<%=ResolveClientUrl(" ~/Images") % > /Slice1.png');">
< div style ="padding-top: 10px; padding-left:10px; font-weight:bold; font-size:12px;" >
< asp:PlaceHolder ID ="PlaceHolder1" runat ="server" ></ asp:PlaceHolder >
</ div >
</ div >
</ HeaderTemplate >
< ContentTemplate >
< div style ="width: 150px; height: auto; line-height: 25px; background-color: #748CCF;
text-align: left;"
>
< div style ="margin-left: 20px; color: White;" >
< asp:PlaceHolder ID ="PlaceHolder2" runat ="server" ></ asp:PlaceHolder >
</ div >
</ div >
</ ContentTemplate >
</ ajaxToolkit:Accordion >
< asp:SiteMapDataSource ID ="SiteMapDataSource1" runat ="server" />
</ div >

 

 

代码
   
     
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace Web.Controls
{
public partial class Menu : System.Web.UI.UserControl
{
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
CreatMenu();
}

void CreatMenu()
{
int count = 1 ;
foreach (SiteMapNode group in SiteMap.RootNode.ChildNodes)
{

AjaxControlToolkit.AccordionPane ap
= new AjaxControlToolkit.AccordionPane();
ap.Header
= MyAccordion.HeaderTemplate;
ap.Content
= MyAccordion.ContentTemplate;
HyperLink hl
= new HyperLink();
hl.Text
= group.Title;
hl.Target
= group.Url;
foreach (Control c in ap.HeaderContainer.Controls)
{
if (c.GetType().Name == " PlaceHolder " )
{
c.Controls.Add(hl);
break ;
}
}

foreach (SiteMapNode child in group.ChildNodes)
{
HyperLink hl2
= new HyperLink();
hl2.Text
= child.Title;
hl2.Target
= child.Url;
foreach (Control c in ap.ContentContainer.Controls)
{
if (c.GetType().Name == " PlaceHolder " )
{
c.Controls.Add(hl2);
break ;
}
}
}
count
++ ;
MyAccordion.Panes.Add(ap);
}
}
}
}

 

你可能感兴趣的:(accordion)