记录代码如下:
/// <summary>
/// 返回树形下拉框 菜单数据 /// </summary> /// <returns></returns> [HttpGet] public ActionResult GetTreeList(int hosid=0,int pid=0) { var hoslist = yqBll.GetListall(); var dptmodel = departmentBLL.GetModelList(" F_State=1"); dptmodel.Sort((x, y) => x.F_Sort ?? 0 - y.F_Sort ?? 0);//排序 var treeList = new List<TreeModel>(); if (hoslist.Count > 0) { foreach (var hositem in hoslist) { TreeModel treeModel = new TreeModel(); treeModel.id = hositem.T_Woid.ToString(); treeModel.IconCls = ""; treeModel.text = hositem.T_Woname; treeModel.parentid = "-1"; treeModel.TypeId = 1; treeModel.children = TreeRecursion(dptmodel, "0", hositem.T_Woid); treeList.Add(treeModel); //var dptlist = dptmodel.Where(p => p.F_ParentId == 0 && p.T_Woid == hositem.T_Woid).ToList(); } } //return Content(treeList.ToJson()); return Success("获取菜单树胜利", treeList); } private List<TreeModel> TreeRecursion(List<Model.T_Sys_Department> data, string parentId = "0", int hosid = 0) { List<Model.T_Sys_Department> item = null; List<TreeModel> newList = new List<TreeModel>(); //if (parentId != "0") //{ if (hosid != 0) { item = data.FindAll(t => t.F_ParentId.ToString() == parentId && t.T_Woid == hosid);//data倡议在调用此扩大办法前曾经排序过 } else { item = data.FindAll(t => t.F_ParentId.ToString() == parentId);//data倡议在调用此扩大办法前曾经排序过 } if (item.Count > 0) { foreach (Model.T_Sys_Department entity in item) { TreeModel treeModel = new TreeModel(); treeModel.id = entity.F_DeptId.ToString(); treeModel.IconCls = ""; treeModel.text = entity.F_DeptName; treeModel.parentid = entity.F_ParentId.ToString(); treeModel.TypeId = 2; treeModel.children = TreeRecursion(item, entity.F_DeptId.ToString()); newList.Add(treeModel); } } //} return newList; }