分析tree_data.json 书写类 NewsClassJson
/// <summary> /// 构建Json数据源的数据格式,属性有id,test,children,这里名字不能够更改否则不能够读取出来 /// </summary> public class NewsClassJson { /// <summary> /// ID /// </summary> public int id { get; set; } /// <summary> /// 分类 /// </summary> public string text { get; set; } /// 子类 /// </summary> public List<NewsClassJson> children { get; set; } /// <summary> /// 父ID /// </summary> public int ParentId { get; set; } }
递归将NewsClassJson转化为适合jquery easy ui 控件tree ,combotree 的 json
1 /// <summary> 2 /// 递归 3 /// </summary> 4 /// <param name="list"></param> 5 /// <returns></returns> 6 // 7 public List<NewsClassJson> LinqJsonTree(int parentId) 8 { 9 List<Ecms_News_Class> classlist = _DbSession.Ecms_News_ClassRepository.LoadEntities(item => item.ParentId == parentId).ToList(); 10 11 List<NewsClassJson> jsonData = new List<NewsClassJson>(); 12 classlist.ForEach(item => 13 { 14 jsonData.Add(new NewsClassJson 15 { 16 id = item.ClassId, 17 children = LinqJsonTree(item.ClassId), 18 ParentId = item.ParentId, 19 text = item.ClassName, 20 21 }); 22 }); 23 24 25 return jsonData; 26 }
前台调用
1 //绑定类别下拉列表 2 function BindClass() { 3 4 $('#drpclass').combotree({ 5 url: '/Category/Bind', 6 valueField: 'ClassId', 7 textField: 'ClassName', 8 multiple: true, 9 editable: false, 10 method: 'get', 11 panelHeight: 'auto', 12 checkbox: true, 13 //required: true, 14 //全部折叠 15 onLoadSuccess: function (node, data) { 16 $('#drpclass').combotree('tree').tree("collapseAll"); 17 }, 18 }); 19 20 }
效果如图: