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 />");
       }
       
%>
最终样式:
      -家用电器
      -大 家 电
            -洗衣机
            -家庭音响
            -空调
            -洗衣机
      -生活电器
            -吸尘器
            -电熨斗
            -取暖电器
            -加湿器
            -电话机
      -厨房电器
            -电磁炉
posted @ 2009-08-26 16:12  肚肚  阅读(271)  评论(0编辑  收藏  举报