使用sitemap生成accordion

public partial class menu : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { for (int i = 0; i < SiteMap.RootNode.ChildNodes.Count; i++) { //GRABS SITEMAP MAIN ITEMS (UNDER HOME) SiteMapNode smn = (SiteMapNode)SiteMap.RootNode.ChildNodes[i]; //CREATES ACCORDION PANE AjaxControlToolkit.AccordionPane p = new AjaxControlToolkit.AccordionPane(); //CREATE UNIQUE PANE ID p.ID = "Pane" + i; //CREATE HEADER ITEM HyperLink hlHeader = new HyperLink(); hlHeader.NavigateUrl = SiteMap.RootNode.ChildNodes[i].Url.ToString(); hlHeader.Text = SiteMap.RootNode.ChildNodes[i].Title.ToString(); //ADDS HEADER LINK TO PANE (HEADER) p.HeaderContainer.Controls.Add(hlHeader); //CHECKS IF HEADER ITEM HAS CHILDREN if (smn.HasChildNodes) { //CREATE BULLETED LIST OF CHILDREN BulletedList blMenu = new BulletedList(); blMenu.DisplayMode = BulletedListDisplayMode.HyperLink; //CREATES LIST ITEMS WITHIN BULLETED LIST FOR CHILDREN for (int j = 0; j < smn.ChildNodes.Count; j++) { blMenu.Items.Insert(0, (new ListItem(smn.ChildNodes[j].Title.ToString(), smn.ChildNodes[j].Url.ToString()))); } //ADDS BULLETED LIST TO PANE (CONTAINER) p.ContentContainer.Controls.Add(blMenu); } //ADDS PANE TO ACCORDION myAccordion.Panes.Add(p);
posted @ 2013-09-30 20:09  代码茶  阅读(110)  评论(0)    收藏  举报