1. //创建GoodsClassInfo类 
  2.  
  3. //创建GoodsType类 
  4. public class GoodsType 
  5.     { 
  6.         public GoodsType() 
  7.         { 
  8.             GoodsList = new List<GoodsClassInfo>(); 
  9.         } 
  10.  
  11.         public int TypeId { getset; } 
  12.         public IList<GoodsClassInfo> GoodsList { getset; } 
  13.     } 
  14.  
  15. //方法 
  16. public GoodsType[] SearchTypeList(ISettings settings) 
  17.         { 
  18.             var conn = settings.Systems.Current.ConnectionString; 
  19.  
  20.             using (var db = DBCreate.CreateDb_GoodsWEB(classname, conn) as IDBGoodsWEB) 
  21.             { 
  22.                 IDbTable table = db.GetGoodsClassList(); 
  23.  
  24.                 Dictionary<int, GoodsType> _coll = new Dictionary<int, GoodsType>(); 
  25.  
  26.                 foreach (DbReaderRow r in table) 
  27.                 { 
  28.                     int level = Convert.ToInt32(r["LEVELNUM"]); 
  29.                     int id = Convert.ToInt32(r["ID"]); 
  30.                     string className = r["CLASSNAME"].ToString(); 
  31.                     string classId = r["CLASSID"].ToString(); 
  32.                     int lastClassId = Convert.ToInt32(r["LASTCLASSID"]); 
  33.                     DateTime createTime = (DateTime)r["CREATETIME"]; 
  34.                     int sort = Convert.ToInt32(r["SORT"]); 
  35.                     int isDelete = Convert.ToInt32(r["ISDELETE"]); 
  36.  
  37.                     if (!_coll.ContainsKey(level)) 
  38.                     { 
  39.                         _coll.Add(level, new GoodsType { TypeId = level }); 
  40.                     } 
  41.                     _coll[level].GoodsList.Add(new GoodsClassInfo 
  42.                     { 
  43.                         ID = id, 
  44.                         CLASSNAME = className, 
  45.                         CLASSID = classId, 
  46.                         LASTCLASSID = lastClassId, 
  47.                         LEVELNUM = level, 
  48.                         CREATETIME = createTime, 
  49.                         SORT = sort, 
  50.                         ISDELETE = isDelete 
  51.                     }); 
  52.                 } 
  53.                 return _coll.Values.ToArray<GoodsType>(); 
  54.             } 
  55.         } 
  56.  
  57. //前台页面脚本 
  58.  $(function () { 
  59.             var bar = $('#sidebar'); 
  60.             bar.html(''); 
  61.             $.json( 
  62.                 { __DLL: 'Hebccc.GoodsManager.BLL', __METHOD: '.GoodsWEB.Operate.SearchTypeList', _SESSION: false }, 
  63.                 function (obj) { 
  64.                     eval('var objData=' + obj); 
  65.                     var level0 = objData[0]; 
  66.                     var level1 = objData[1]; 
  67.                     var level2 = objData[2]; 
  68.                     for (var i = 0; i < level0.GoodsList.length; i++) { 
  69.                         var id0 = level0.GoodsList[i].ID;//id0标记最外层div的id,0级分类 
  70.                         var name0 = level0.GoodsList[i].CLASSNAME; 
  71.                         var sideid = '_divsidelist' + id0;  
  72.                         var divHtml = $('<div id="' + sideid + '" class="sidelist"></div>'); 
  73.                         divHtml.append('<span><h3><a href="javascript:void(0)">' + name0 + '</a></h3></span>'); 
  74.                         var layer = $('<div class="i-list"  ><dl></dl></div>').appendTo(divHtml); 
  75.                         for (var j = 0; j < level1.GoodsList.length; j++) { 
  76.                             var id1 = level1.GoodsList[j].ID; //id1标记1级分类 
  77.                             var name1 = level1.GoodsList[j].CLASSNAME; 
  78.                             var lastclass1 = level1.GoodsList[j].LASTCLASSID; 
  79.                             if (lastclass1 != id0) { continue; } 
  80.                             var asd = $('<asd></asd>'); 
  81.                             asd.append('<dt><a href="search.aspx?type=' + id1 + '">' + name1 + '</a></dt>'); 
  82.                             var dd = $('<dd><ul></ul></dd>').appendTo(asd); 
  83.                             for (var k = 0; k < level2.GoodsList.length; k++) { 
  84.                                 var id2 = level2.GoodsList[k].ID; //id2标记2级分类 
  85.                                 var name2 = level2.GoodsList[k].CLASSNAME; 
  86.                                 var lastclass2 = level2.GoodsList[k].LASTCLASSID; 
  87.                                 if (lastclass2 != id1) { continue; } 
  88.                                 var subNav = '<subNav> | <a href="search.aspx?type=' + id2 + '">' + name2 + '</a></subNav>'
  89.                                 dd.children().append(subNav); 
  90.                             } 
  91.                             layer.children().append(asd); 
  92.                         } 
  93.                         bar.append(divHtml); 
  94.                     } 
  95.                     $('.sidelist''#sidebar').mousemove(function () { $(this).find('.i-list').show(); $(this).find('h3').addClass('hover'); }); 
  96.                     $('.sidelist''#sidebar').mouseleave(function () { $(this).find('.i-list').hide(); $(this).find('h3').removeClass('hover'); }); 
  97.                 }); 
  98.         });