zoukankan      html  css  js  c++  java
  • dhl:使用递归获取N级子目录列表(附数据库结构)

    附数据库结构:
     
    代码:
     /// <summary>
            
    /// 递归获取子目录列表
            
    /// </summary>
            
    /// <param name="SortList">用于存储全部新的列表。</param>
            
    /// <param name="parentId">上一级的id</param>
            
    /// <param name="Counter">计数器,用于前台排版</param>
            
    /// <returns></returns>
            private List<CMS_Catalog> GetChildSort(List<CMS_Catalog> SortList, int parentId, int Counter)
            {
                var v 
    = from l in content.CMS_Catalog where l.ParentId == parentId && l.AppId==1 select l;
                List
    <CMS_Catalog> _list = v.ToList();

                
    if (_list.Count > 0)
                {
                    Counter
    ++;
                    
    for (int i = 0; i < _list.Count; i++)
                    {
                        
    string temp = string.Empty;
                        
    for (int m = 0; m < Counter; m++)
                        {
                            temp 
    += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                        }
                        _list[i].Extended1 
    = temp; //存储列表的前台样式
                        SortList.Add(_list[i]);
                        GetChildSort(SortList, Convert.ToInt32(_list[i].ID), Counter);
                    }
                }
                
    return SortList;
            }

    调用 :

    /// <summary>
            
    /// 目录管理
            
    /// </summary>
            
    /// <returns></returns>
            public ActionResult CMSSortManage()
            {
                List
    <CMS_Catalog> SortList = new List<CMS_Catalog>();
                ViewData[
    "SortList"= GetChildSort(SortList,0,0);
                
    return View(); 
            }
    注意点: 循环不能用foreach(foreach是取只读的,在取的时候数据不能变(包括修改,删除,添加等)。)
    否则会报错误:集合已修改可能无法执行枚举操作(进来看)
    前台页面:
       <%
           List
    <PingCoCMS.Model.CMS_Catalog> SortList = ViewData["SortList"as List<PingCoCMS.Model.CMS_Catalog>;
           
    foreach (var item in SortList)
           {
               Response.Write(item.Extended1
    +"-");
               Response.Write(item.Name);
               Response.Write(
    "<br />");
           }
           
    %>
    最终样式:
          -家用电器
          -大 家 电
                -洗衣机
                -家庭音响
                -空调
                -洗衣机
          -生活电器
                -吸尘器
                -电熨斗
                -取暖电器
                -加湿器
                -电话机
          -厨房电器
                -电磁炉
  • 相关阅读:
    ssm(spring+springmvc+mybatis)整合之环境配置
    OD机试题
    openpyxl 读取多个excle中的数据并保存到List中
    Python比较2个字典有哪些值不一致
    Python 正则表达式 匹配小数
    开始入驻博客园,审批神速,赞
    VUE入门实例
    VUE使用axios调用后台API接口
    Redis、Memcached和Tair,同为分布式缓存Redis为何更胜一筹?
    Redis可以用作消息队列吗?
  • 原文地址:https://www.cnblogs.com/dudu837/p/1554401.html
Copyright © 2011-2022 走看看