jstree 实现动态加载树子节点

1546年前javaScript10323


Js引用:

<script src="${root!}/resource/js/plugins/jsTree/jstree.min.js"></script>

html容器:

<div id="treeview" ></div>

js实现动态加载树:

//根据类型,点击节点自动触发一次url。
var url = "${root!}/admin/house/room/tree?lazy";
    $(function() {
          $("#treeview").jstree({
            'core' : {
              'data' : {
                  "url" : function(node) {
                      if(node.original) {
                        console.log(node.original);
                          var result = url;
                          result += "&type=" + node.original.type;
                            console.log(node.original.buildingValue);
                          if(node.original.buildingValue!=undefined) {
                               result += "&buildingValue=" + node.original.buildingValue;
                          }
                          if(node.original.floorValue!=undefined) {
                               result += "&floorValue=" + node.original.floorValue;
                          }
                           if(node.original.roomValue!=undefined) {
                               result += "&roomValue=" + node.original.roomValue;
                          }
                          return result;
                      } else {
                          return url;
                      }
                  },
                  "data" : function (node) {
                    return { "id" : node.id };
                  }
               }
             }
          });
    });

//点击节点可获取的值i

$('#treeview').on("changed.jstree", function (e, data) {  
    console.log("The selected nodes are:"+data.node);  
    console.log(data.node.id);
                 //选择的node id  
    console.log(data.node.text);            //选择的node text  
               var inst = data.instance;  
                var selectedNode = inst.get_node(data.selected);  
   console.log(selectedNode); //可获取整个选择的节点对象值
    //type = selectedNode.original.type;

});

后台类:

public void tree() {
//        JSONObject json = new JSONObject();
        List jsonlist = new ArrayList();
        List list = new ArrayList();
        if("#".equals(getPara("id"))) {
            JSONObject json = new JSONObject();
            json.put("text", "养老机构");
            json.put("children", true);
            json.put("type", "building");
            renderJson(json);
        } else {
            String type = getPara("type");
            switch(type) {
            case "building":
                jsonlist = new ArrayList();
                 list = Db.find("select DISTINCT building text from house");
                for (int i=0;i<list.size();i++){
                   Record record = (Record) list.get(i);
                   JSONObject json = new JSONObject();
                   json.put("text", "楼号"+record.getStr("text"));
                   json.put("children", true);
                   json.put("type", "floor");
                   json.put("buildingValue",  record.getStr("text"));
                   jsonlist.add(json);
                }
                logger.info("jsonlist=="+JSON.toJSON(jsonlist) );
                renderJson(jsonlist);
                break;
            case "floor":
                jsonlist = new ArrayList();
                 list = Db.find(" select DISTINCT  floor text,building  " +
                         "from house where building='"+getPara("buildingValue")+"'  ");
                for (int i=0;i<list.size();i++){
                   Record record = (Record) list.get(i);
                   JSONObject json = new JSONObject();
                   json.put("text", "楼层"+record.getStr("text"));
                   json.put("children", true);
                   json.put("type", "room");
                   json.put("buildingValue", record.getStr("building"));
                   json.put("floorValue",  record.getStr("text"));
                   jsonlist.add(json);
                }
                logger.info("jsonlist=="+JSON.toJSON(jsonlist) );
                renderJson(jsonlist);
                break;
            case "room":
                jsonlist = new ArrayList();
                 list = Db.find(" select DISTINCT room text,floor,building  from house " +
                         " where floor='"+getPara("floorValue")+"' " +
                         " and  building='"+getPara("buildingValue")+"'     ");
                    for (int i=0;i<list.size();i++){
                       JSONObject json = new JSONObject();
                       Record record = (Record) list.get(i);
                       json.put("text", "房间"+record.getStr("text"));
                       json.put("children", true);
                       json.put("type", "bed");
                       json.put("buildingValue", record.getStr("building"));
                       json.put("floorValue",  record.getStr("floor"));
                       json.put("roomValue",  record.getStr("text"));
                       jsonlist.add(json);
                    }
                    renderJson(jsonlist);
                break;
            case "bed":
                jsonlist = new ArrayList();
                 list = Db.find(" select DISTINCT bed text,room ,floor,building from house" +
                         " where room = '"+getPara("roomValue")+"' and " +
                         " floor='"+getPara("floorValue")+"' and  building='"+getPara("buildingValue")+"'  ");
                        for (int i=0;i<list.size();i++){
                           Record record = (Record) list.get(i);
                           JSONObject json = new JSONObject();
                           json.put("text", "床位"+record.getStr("text"));
                           json.put("type", "last");
                           json.put("children", false);
                           json.put("buildingValue", record.getStr("building"));
                           json.put("floorValue",  record.getStr("floor"));
                           json.put("roomValue",  record.getStr("room"));
                           json.put("bedValue",  record.getStr("text"));
                           jsonlist.add(json);
                        }
                 renderJson(jsonlist);
                break;
            }
        }
        
    }



标签: JqueryIT

相关文章

get/post方式调用http接口

get/post方式调用http接口

 1. 项目环境如下:myeclipse8.5 、tomcat5.0/weblogic、xp、JDK:开发1.5,编译1.4为了方便,在原来的web项目UpDown中新建了一个httpcal...

linux系统 命令移动文件至另一个目录

linux系统 命令移动文件至另一个目录

使用mv 命令,回车是否覆盖,输入Y,可将原文件覆盖[root@host4702 cuadmin]# mv application.yml /data/AAS-V9.0/domains/mydomai...

js限制input只能输入数字、英文、汉字

 1.只能输入数字和英文的:  <input onkeyup="value=value.replace(/[\W]/g,'') "...

知道mysql的索引吗?什么情况下索引不可用呢?

1普通索引:最基本的索引,没有任何限制  唯一索引:与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。  主键索引:它 是一种特殊的唯一索引,不...

mysql创建函数 Navicat 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for

mysql创建函数 Navicat 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for

mysql 创建函数出错信息如下:1227-访问被拒绝;您需要超级权限才能执行此操作你的权限不足,试着用root账户登录数据库操作权限-- 查看是否开启创建函数的功能show variables li...

坑爹的ShowModalDialog 后台传值解决方案

 今天遇到需要ShowModalDialog打开页面,通过acceptanceIds 参数值后台过滤出相应结果前台  var url = "loadAccept...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。