/// <summary>
        /// 获取此类型相关的字符串
        /// </summary>
        /// <param name="TypeID">类型ID</param>
        /// <param name="LoadingModes">加载方式</param>
        /// <param name="url">链接地址</param>
        /// <returns>字符串</returns>
        public static string DynamicData(string TypeID, int LoadingModes,string url)
        {
            StringBuilder innerHtml = new StringBuilder();
            LoadingMode temp = LoadingMode.加载文章标题 | LoadingMode.加载子分类;
            //类型实体列表
            List<B_ContentType> ParentTypeList = CaiShangPlatForm.BLL.BaseSetting.B_ContentType.GetList(new B_ContentTypeSearch() { ParentTypeID = TypeID});
            //根据类型ID,查询内容实体
            List<Entity.Contents.C_Contents> ParentContentsList = CaiShangPlatForm.BLL.Contents.C_Contents.GetEntityListByTypeID(TypeID, 1000);
            //临时定义内容实体
            List<B_ContentType> TypeList = new List<B_ContentType>();
            List<Entity.Contents.C_Contents> ContentsList = new List<Entity.Contents.C_Contents>();
            if (LoadingModes == (int)temp)
            {
                //加载第二级子分类
                if (ParentTypeList != null)
                {
                    foreach (B_ContentType entity in ParentTypeList)
                    {
                        //判断第二级子分类的加载方式
                        if (entity.LoadingMode == (int)temp)
                        {
                            //加载第二级子分类
                            innerHtml.AppendLine("<div class='NewsTypeCss'>" + entity.TypeName + "</div><div>");
                            //加载第三级子分类
                            TypeList = CaiShangPlatForm.BLL.BaseSetting.B_ContentType.GetList(new B_ContentTypeSearch() { ParentTypeID = entity.ID });
                            if (TypeList != null)
                            {
                              //再加载第三级,第四级
                            }                            //加载第二级内容标题
                            ContentsList = CaiShangPlatForm.BLL.Contents.C_Contents.GetEntityListByTypeID(entity.ID, 1000);
                            if (ContentsList != null)
                            {
                                foreach (Entity.Contents.C_Contents ContentEntity in ContentsList)
                                {
                                    innerHtml.AppendLine("<div class='NewsContentCss'><span> > </span><a href='/HelpPages/NewsCenter.aspx?SID=" + ContentEntity.ID + "&Mode=1'>" + ContentEntity.Title + "</a></div>");
                                }
                            }
                            innerHtml.AppendLine("</div>");
                        }                        else if (entity.LoadingMode == (int)LoadingMode.加载子分类)
                        {
                            //........
                         }
                        else if (entity.LoadingMode == (int)LoadingMode.加载文章标题)
                        {
                         //........ 
                        }
                    }
                }
                //加载第一级内容标题
                if (ParentContentsList != null)
                {
                    foreach (Entity.Contents.C_Contents entity in ParentContentsList)
                    {
                        innerHtml.AppendLine("<div class='NewsTypeCss'><a href='" + url + "?SID=" + entity.ID + "&Mode=1'>" + entity.Title + "</a></div>");
                    }
                }
            }
            else if(LoadingModes==(int)LoadingMode.加载子分类)
            {
              //加载第二级子分类及第三级......
            }
            else if (LoadingModes == (int)LoadingMode.加载文章标题)
            {
                if (ParentContentsList != null)
                {
                    foreach (Entity.Contents.C_Contents entity in ParentContentsList)
                    {
                        innerHtml.AppendLine("<div class='NewsTypeCss'><span> > </span><a href='" + url + "?SID=" + entity.ID + "&Mode=1'>" + entity.Title + "</a></div>");
                    }
                }
            }
            return innerHtml.ToString();
        }

解决方案 »

  1.   

    参考 private void bind()
        {
            StringBuilder sb = new StringBuilder();        sb.Append("<ul class='simpleTree'>");
            DataSet ds = db.getDs();
            DataRow[] dr = ds.Tables[0].Select("department_code='001'");
            Response.Write("为了测试,当前总行数为:" + "<a style='color=red'>"+ds.Tables[0].Rows.Count+"</a><div style='height=10px;background-color:white'></div>");
            
            foreach (DataRow r in dr)
            {
                string name = r["department_name"].ToString();
                string code = r["department_code"].ToString();
                 sb.Append("<li class='root' id='li1' name='" + name + "'><span id='s1' oncontextmenu = showMenu('" + i + "')  name='" + name + "' class='" + code + "'>" + name + "</span>");
                if (AddChildNode(ds, code) != "" || AddChildNode(ds, code)!=null)
                 {
                     sb.Append("<ul>" + AddChildNode(ds, code));
                     ds.Tables[0].Rows.Remove(r);             }
                
            }
            sb.Append("</ul>");
          
            mytree.InnerHtml = sb.ToString();
          
        }    public string AddChildNode(DataSet ds, string department_code)
        {
            i++;        StringBuilder sb1 = new StringBuilder();
            DataRow[] dr = ds.Tables[0].Select("parent_department='" + department_code + "'");
            int count = dr.Length;        if (dr != null)
            {            foreach (DataRow r in dr)
                {
                    string code = r["department_code"].ToString();                string name = r["department_name"].ToString();
                    sb1.Append("<li id='li" + i + "' class='" + code + "' name='" + name + "'><span id='s" + i + "' oncontextmenu = showMenu('" + i + "') name='" + name + "' class='" + code + "'>" + name + "</span></li>");
                    
                    if (AddChildNode(ds, code) == "" || AddChildNode(ds, code) == null)
                    {                }
                    else
                    {
                        sb1.Append("<ul>" + AddChildNode(ds, code) + "</ul>");
                    }
                                 }        }
             
            return sb1.ToString();
        }
      

  2.   

    递归,根据ParentId查找子集实现方法,再返回字符串
      

  3.   

    如果你的TypeID是有子id的。就继续找
      

  4.   

    //重新写了一个,帮看看对不了 /// <summary>
            /// 绑定子分类方法
            /// </summary>
            /// <param name="TypeID">类型ID</param>
            /// <param name="LoadingModes">加载方式</param>
            /// <param name="url">链接地址</param>
            public void bind(string TypeID, int LoadingModes, string url)
            {
                StringBuilder innerHtml = new StringBuilder();
                LoadingMode temp = LoadingMode.加载文章标题 | LoadingMode.加载子分类;
                //类型实体列表
                List<B_ContentType> ParentTypeList = CaiShangPlatForm.BLL.BaseSetting.B_ContentType.GetList(new B_ContentTypeSearch() { ParentTypeID = TypeID });
                //根据类型ID,查询内容实体
                List<Entity.Contents.C_Contents> ParentContentsList = CaiShangPlatForm.BLL.Contents.C_Contents.GetEntityListByTypeID(TypeID, 1000);            if (LoadingModes == (int)temp)
                {
                    //加载第二级子分类
                    innerHtml.AppendLine(AddChildNode(ParentTypeList, url));
                    //加载第一级内容标题
                    if (ParentContentsList != null)
                    {
                        foreach (Entity.Contents.C_Contents entity in ParentContentsList)
                        {
                            innerHtml.AppendLine("<div class='NewsTypeCss'><a href='" + url + "?SID=" + entity.ID + "&Mode=1'>" + entity.Title + "</a></div>");
                        }
                    }
                }
                else if (LoadingModes == (int)LoadingMode.加载子分类)
                {
                    //加载第二级子分类
                    innerHtml.AppendLine(AddChildNode(ParentTypeList, url));
                }
                else if (LoadingModes == (int)LoadingMode.加载文章标题)
                {
                    //加载第一级内容标题
                    if (ParentContentsList != null)
                    {
                        foreach (Entity.Contents.C_Contents entity in ParentContentsList)
                        {
                            innerHtml.AppendLine("<div class='NewsTypeCss'><span> > </span><a href='" + url + "?SID=" + entity.ID + "&Mode=1'>" + entity.Title + "</a></div>");
                        }
                    }
                }
                //ls.innerHtml=innerHtml.ToString();
            }        /// <summary>
            /// 获取子类的递归方法
            /// </summary>
            /// <param name="list">类型实体</param>
            /// <param name="url">链接地址</param>
            /// <returns>字符串</returns>
            public static string AddChildNode(List<Entity.BaseSetting.B_ContentType> list, string url)
            {
                StringBuilder innerHtml = new StringBuilder();
                LoadingMode temp = LoadingMode.加载文章标题 | LoadingMode.加载子分类;
                //临时定义内容实体
                List<B_ContentType> TypeList = new List<B_ContentType>();
                List<Entity.Contents.C_Contents> ContentsList = new List<Entity.Contents.C_Contents>();            if (list != null)
                {
                    foreach (Entity.BaseSetting.B_ContentType entity in list)
                    {
                        if (entity.LoadingMode == (int)temp)
                        {
                            TypeList = CaiShangPlatForm.BLL.BaseSetting.B_ContentType.GetList(new B_ContentTypeSearch() { ParentTypeID = entity.ID });
                            ContentsList = CaiShangPlatForm.BLL.Contents.C_Contents.GetEntityListByTypeID(entity.ID, 10000);
                            //加载第二级子分类
                            innerHtml.AppendLine("<div class='NewsTypeCss'>" + entity.TypeName + "</div><div>");
                            //递归加载子分类及内容
                            innerHtml.AppendLine(AddChildNode(TypeList,url));                        //加载第二级内容标题
                            if (ContentsList != null)
                            {
                                foreach (Entity.Contents.C_Contents ContentEntity in ContentsList)
                                {
                                    innerHtml.AppendLine("<div class='NewsContentCss'><span> > </span><a href='/HelpPages/NewsCenter.aspx?SID=" + ContentEntity.ID + "&Mode=1'>" + ContentEntity.Title + "</a></div>");
                                }
                            }
                            innerHtml.AppendLine("</div>");
                        }
                        else if (entity.LoadingMode == (int)LoadingMode.加载子分类)
                        {
                            TypeList = CaiShangPlatForm.BLL.BaseSetting.B_ContentType.GetList(new B_ContentTypeSearch() { ParentTypeID = entity.ID });
                            //加载第二级子分类
                            innerHtml.AppendLine("<div class='NewsTypeCss'>" + entity.TypeName + "</div><div>");
                            //递归加载子分类及内容
                            innerHtml.AppendLine(AddChildNode(TypeList, url));
                        }
                        else if (entity.LoadingMode == (int)LoadingMode.加载文章标题)
                        {
                            //加载第二级内容标题
                            if (ContentsList != null)
                            {
                                foreach (Entity.Contents.C_Contents ContentsEntity in ContentsList)
                                {
                                    innerHtml.AppendLine("<div class='NewsContentCss'><span> > </span><a href='" + url + "?SID=" + ContentsEntity.ID + "&Mode=1'>" + ContentsEntity.Title + "</a></div>");
                                }
                            }
                        }
                    }
                }
                return innerHtml.ToString();
            }