jQuery EasyUI:根据数据库内容生成适合于easyui-tree的JSON数据格式

1,jQuery EasyUI中easyui-tree特定的JSON数据格式

 1 [
 2 {"id":1,"text":"某公司","children":[
 3     {"id":2,"text":"生产部"},
 4     {"id":4,"text":"质检部","children":[
 5         {"id":3,"text":"销售部"},
 6         {"id":5,"text":"后勤部"},
 7         {"id":6,"text":"人事部"},
 8         {"id":7,"text":"财务部"},
 9         {"id":8,"text":"IT部"}]
10     }]
11 }
12 ]

2,从数据库中查询出来的数据保存在一个List中。

其中字段Parent_Department_ID表明该节点的父节点。

则在数据库中查询出来的数据保存在List中对应数据结构中树的双亲表示法。对该树进行遍历的同时生成相应的JSON代码。

3,根据上述思想进行的具体实现

        public string GetDepartmentTree()
        {
//查询数据库,数据保存在List中 List<department> queryDepart=_departmentService.LoadEntities(u=>true).ToList<department>(); string departmentTree=null;        //遍历整个树,寻找根节点 foreach (department d in queryDepart) { if (d.Parent_Department_ID == -1) { departmentTree="\"id\":"+d.Department_ID+",\"text\":\""+d.Department_Name+"\",";
            //调用FindChild方法,开始遍历整个树,寻找当前节点的子节点。 string child = FindChild(d.Department_ID, queryDepart); if (child != null) { departmentTree += child; } departmentTree = "[{" + departmentTree + "}]"; } } return departmentTree; } private string FindChild(int id, List<department> queryDepart) { bool flag = false; string departmentChild =null; foreach (department d in queryDepart) { string anotherChild = null; if (d.Parent_Department_ID == id)//寻找到子节点 {
            anotherChild = "\"id\":" + d.Department_ID + ",\"text\":\"" + d.Department_Name + "\",";
            string child = FindChild(d.Department_ID, queryDepart); if (child != null) { anotherChild = anotherChild + child ; } if (anotherChild[anotherChild.Length - 1] == ',') { anotherChild = anotherChild.Remove(anotherChild.Length - 1); } anotherChild = "{" + anotherChild + "}"; departmentChild += anotherChild+","; } else { flag = false; } } if (departmentChild != null) { departmentChild = departmentChild.Remove(departmentChild.Length - 1); departmentChild = "\"children\":[" + departmentChild + "]"; } return departmentChild; }

  

posted on 2013-06-29 15:45  wxlkeepmoving  阅读(2273)  评论(1)    收藏  举报