EsayUI树和.net mvc结合递归加载树

动态生成树通过url返回json

格式为

[
{
id: 1,
text: 'Languages',
children: [
   {
    id: 11,
     text: 'Java'
   },
      {
       id: 12,
        text: 'C++'
     }
  ]
  }
]);
<select 
     id="PID" name="PID" class="easyui-combotree" style="width:140px;"
   data-options="url:'/Menu/GetTreeMenu',required:true">
   </select>@*//通过url获取json集合*@
</td>


后台反回递归加载节点

首先创建tree类

public class Tree { 
 public Tree() { 
 children = new List<Tree>(); 
 } 
   public int id { get; set; } 
   public string text { get; set; } 
   public List<Tree> children { get; set; 
 }
}


递归创建树

public List<Tree> GetTreeMenuList() 
 { 
   //查询所有节点
   list= Dal.Search(null); 
   List<Tree> treeList = new List<Tree>(); 
   //启始设置空值 
   treeList.Add(new Tree() { text = "请选择" }); 
   //查询menu的所有一级节点 
   List< Menu > menuList = list.Where(x => x.PID == null).ToList(); 
  foreach (Menu item in menuList)
  { 
    Tree t = new Tree();
    t.id =item.ID; 
    t.text = item.Name; 
    //调用查询子节点的方法
    GetSunNode(item.ID,t); treeList.Add(t);
  } 
   return treeList; 
} 
  //添加子节点的方法 
 public void GetSunNode(int pid,Tree tree) 
 { 
   //查询pid和父节点pid对应的子节点
    List<Menu> menuList = list.Where(x => x.PID == pid).ToList();
   foreach (Menu item in menuList) 
   { 
    Tree t = new Tree(); 
    t.id = item.ID; 
    t.text = item.Name; 
    GetSunNode(item.ID, t);
   //递归调用给自己添加节点 
   //将子节点添加到父节点中 tree.children.Add(t); 
  } 
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值