Example #1
0
        /// <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());
        }
Example #2
0
        /// <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>");
        }