天天看点

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

}

}

}

}

转载于:https://www.cnblogs.com/yym/archive/2010/02/22/1670983.html

ui c#