// Build level 2 sub-menu tag ------------------------------------------------------------------------------- // // <li> // <a href = "#" > Dropdown </ a > // <ul style="width:480px;"> // { Lever 3+ menu items } // </ul> // </li> // protected TagBuilder BuildLevel2SubMenuTag(NavMenuNode node) { var li = new TagBuilder("li"); var a = new TagBuilder("a"); a.MergeAttribute("href", "#"); a.InnerHtml.Append(node.Title); li.InnerHtml.AppendHtml(a); var ul = new TagBuilder("ul"); ul.MergeAttribute("style", "width:480px;"); var list = nodes.Where(x => x.ParentId == node.Id).OrderBy(x => x.Order).ToList(); foreach (var item in list) { if (item.HasChildren) { ul.InnerHtml.AppendHtml(BuildLevel2SubMenuTag(item)); } else { ul.InnerHtml.AppendHtml(BuildMenuLinkTag(item)); } } li.InnerHtml.AppendHtml(ul); return(li); }
// Build menu link tag ------------------------------------------------------------------------------- // // <li><a href="{Link}">{Title}</a></li> // protected TagBuilder BuildMenuLinkTag(NavMenuNode node) { var li = new TagBuilder("li"); var a = new TagBuilder("a"); a.MergeAttribute("href", node.Link); a.InnerHtml.Append(node.Title); li.InnerHtml.AppendHtml(a); return(li); }
// Build level 1 sub-menu tag ------------------------------------------------------------------------------- // // <li> // <a href="#" class="dropdown-toggle" data-toggle="dropdown">Title <b class="caret"></b></a> // <ul class="dropdown-menu"> // { Level 2 menu items } // </ul> // </li> // protected TagBuilder BuildLevel1SubMenuTag(NavMenuNode node) { var li = new TagBuilder("li"); var a = new TagBuilder("a"); a.AddCssClass("dropdown-toggle"); a.MergeAttribute("href", "#"); a.MergeAttribute("data-toggle", "dropdown"); a.InnerHtml.Append(node.Title); var b = new TagBuilder("b"); b.AddCssClass("caret"); a.InnerHtml.AppendHtml(b); li.InnerHtml.AppendHtml(a); var ul = new TagBuilder("ul"); ul.AddCssClass("dropdown-menu"); var list = nodes.Where(x => x.ParentId == node.Id).OrderBy(x => x.Order).ToList(); foreach (var item in list) { if (item.HasChildren) { ul.InnerHtml.AppendHtml(BuildLevel2SubMenuTag(item)); } else { ul.InnerHtml.AppendHtml(BuildMenuLinkTag(item)); } } li.InnerHtml.AppendHtml(ul); return(li); }