领先的互联网解决方案提供商!

深圳 : 0755-2101 0201 广州 : 020-8092 8113 东莞 : 0769-3326 0066 <<<全国分公司
  • 网站建设
  • SEO推广
  • 客户案例
  • 联系我们
  • 扫描添加微信

    30秒获取报价:

    提交您的电话,免费赠送一年维护及关键词排名

  • 联系人*
  • 手机号*
  • C#无限极分类菜单方法

    您现在的位置:首页 > 新闻中心 > 行业新闻
    作者: 发布于:2019-4-16 10:49:23 点击量:

    话不多说直接上代码

    我利用的是MVC5+EF做的。

    以下这部分是controller代码。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38

    public JsonResult Test()
            {
                List Categorylist = GetAllCategorys();
                Category root = db.Categorys.Find(1);
                LoopToAppendChildren(root);
                return Json(root.ChildCategory, JsonRequestBehavior.AllowGet);
            }
     public void LoopToAppendChildren(Category curItem)
            {           
                var subItems = GetCategorys(curItem.ID);
                curItem.ChildCategory = new List();
                curItem.ChildCategory.AddRange(subItems);
                foreach (var subItem in subItems)
                {
                    LoopToAppendChildren(all, subItem);
                }
            }
     
            public List GetCategorys(int ParentID)
            {
                var categorys = from s in db.Categorys
                                orderby s.ID descending
                                where s.CategoryParentID == ParentID
                                select s;
     
                return categorys.ToList();
     
            }
     
            public List GetAllCategorys()
            {
                var categorys = from s in db.Categorys
                                orderby s.ID descending
                                select s;
     
                return categorys.ToList();
     
            }

     这部分是Category类代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Category
       {
           public int ID { get; set; }
           public string CategoryName { get; set; }
           public string CategoryInfo { get; set; }
           public int CategoryParentID { get; set; }
           public bool CategoryStatus { get; set; }
           public int CategorySort { get; set; }
           public List ChildCategory { get; set; }
       }

     

    主要就是这两个文件,此部分可以用于bootstrap treeview的使用,和面包屑导航栏的使用。

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //通用 ParentId,Id,children 用了反射效率不高,没测试
     
    public void LoopToAppendChildren(List all, T curItem, string parentIdName = "ParentId", string idName = "Id", string childrenName = "children")
    {
      var subItems = all.Where(ee => ee.GetType().GetProperty(parentIdName).GetValue(ee, null).ToString() == curItem.GetType().GetProperty(idName).GetValue(curItem, null).ToString()).ToList(); //新闻1
     
      curItem.GetType().GetField(childrenName).SetValue(curItem, subItems);
      foreach (var subItem in subItems)
      {
        LoopToAppendChildren(all, subItem);//新闻1.1
      }
     }

     


    上一篇: 各大搜索引擎收录指引
    下一篇: 【怀化seo】开始建立新任务

    提交您的电话,免费赠送一年维护及关键词排名

  • 联系人*
  • 手机号*
    1. 首页
    2. 网站建设
    3. 网站推广
    4. 软件开发
    5. 案例展示
    6. 关于我们
    7. 联系我们

      扫码添加微信咨询

    Copyright 2008-2018 深圳市信科网络科技有限公司 Shenzhen Sinco Network Co., Ltd 严禁抄袭模仿本站 违者依法追究责任! 粤ICP备14083186号-3

  • 深圳公司
    电话 : 0755-2101 0201
    手机 : 136 3165 7619
    地址 : 深圳市龙华新区东环一路旭日大厦ll08室
  • 广州分公司
    电话 : 020-8092 8113
    手机 : 135 3988 3715
    地址 : 广州市海珠区宝岗大道268号中新大厦1912
  • 东莞分公司
    电话 : 0769-3331 9353
    手机 : 137 1719 8162
    地址 : 东莞市南城区鸿福路83号曼哈顿广场2409
  • 武汉分公司
    电话 : 027-8355 8661
    手机 : 182 4491 9118
    地址 : 武汉市东西湖区金银湖路18号财富大厦30E
  • 上海分公司
    电话 : 021-3113 7661
    手机 : 132 6719 9217
    地址 : 上海市闸北区江场西路299弄中铁广场堡尼大厦2131
  • 拨打电话
  • 添加微信
  • QQ咨询