/// <summary> /// /// </summary> /// <param name="nodeCode">最上层栏目代码</param> /// <param name="idPrefix">菜单id的前缀</param> /// <param name="className">顶层ul的class</param> /// <param name="sepStr">第一级各菜单直接的分隔样式</param> /// <param name="isShowHome">是否显示主页菜单</param> /// <param name="navType">导航类别:0-全不显示,1-头部显示,2-底部显示,3-全显示</param> /// <returns></returns> public string GetMenus(string nodeCode, string idPrefix, string className, string sepStr, bool isShowHome, int navType) { bool hasFirstClass = false; StringBuilder sb = new StringBuilder(); sb.AppendFormat("<ul id='{0}' class='{1} level{2:D2}'>", idPrefix, className, 1); if (nodeCode == "0000" && isShowHome) { hasFirstClass = true; sb.AppendFormat("<li class='first'><a href='{0}' title=''>{1}</a></li>" + sepStr, GetClientUrl(CurrentLanguage.HomeUrl), Home); } var tops = GetChildNodes(nodeCode, true); int i = 0; string cls = ""; foreach (cmsNewsCatalog item in tops) { if (i == 0 && !hasFirstClass) { cls = "first"; } else if (i == tops.Count - 1) { cls = "last"; } if ((item.NavType & 3) == navType) { StringBuilder sbSub = new StringBuilder(); var subs = NewsCatalogs.FindAll(x => x.ParentCode == item.NodeCode); if (subs.Count > 0) { getNodeTreeStr(sbSub, subs, idPrefix, item.NodeCode, navType, 1); } string url = getNodeUrl(item, true); sb.AppendFormat("<li class='{0}'>{1}{2}</li>" + sepStr, cls, url, sbSub.ToString()); } } sb.Append("</ul>"); return(sb.ToString()); }
/// <summary> /// /// </summary> /// <param name="sb"></param> /// <param name="children"></param> /// <param name="parentCode"></param> private void getNodeTreeStr(StringBuilder sb, List <cmsNewsCatalog> children, string parentCode, string idPrefix, int navType, int level) { sb.AppendFormat("<ul id='{0}' class='level{1:D2}'>", idPrefix + parentCode, level + 1); foreach (cmsNewsCatalog item in children) { if ((item.NavType & 3) == navType) { var subs = NewsCatalogs.FindAll(x => x.ParentCode == item.NodeCode); StringBuilder sbSub = new StringBuilder(); if (subs.Count > 0) { getNodeTreeStr(sbSub, subs, item.NodeCode, idPrefix, navType, level + 1); } string url = getNodeUrl(item, true); sb.AppendFormat("<li>{0}{1}</li>", url, sbSub.ToString()); } } sb.Append("</ul>"); }