zoukankan      html  css  js  c++  java
  • 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()
     {<br>            //查询数据库,数据保存在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+"",";
                 <br>            //调用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)//寻找到子节点
             {<br>           
                 anotherChild = ""id":" + d.Department_ID + ","text":"" + d.Department_Name + "",";
                 <br>            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;
     
     }
     
      
  • 相关阅读:
    arcgis要素转json
    GeoJSON.js:221 Uncaught Error: Invalid GeoJSON object.
    深入学习SAP UI5框架代码系列之一:UI5 Module的懒加载机制
    SAP Spartacus简介
    金庸逝世两周年纪念日:一个失意程序员的呓语
    一个用于SAP UI5学习的脚手架应用,没有任何后台API的依赖
    通过最简单的button控件,深入学习SAP UI5框架代码系列之零
    如何使用SAP UI5 SDK网站查询指定控件的属性如何使用
    一行代码将SAP CDS view数据以ALV的方式输出
    演讲预告:一个月的住院经历,我悟到了哪些和程序员职场发展相关的心得
  • 原文地址:https://www.cnblogs.com/fengyingwang/p/3415006.html
Copyright © 2011-2022 走看看