使用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);
浙公网安备 33010602011771号