easyUI树形菜单多级异步加载

1、在页面中创建一个用于触发的文本

<input type="text" id="unit_v" name="unit_v"/>

2、编写json组装数据格式(主要是先生成父节点在生成子节点,代码查询我做了封装你们主要看for以内的就好了)

   String id = request.getParameter("id");
   List<Object> list = new ArrayList<Object>();
   if(id.equals("1")){  
       //父节点 
  DBRowSet ds = ExecuteQuery.getQueryTable("0","SELECT CD_CODE,CD_CHINA FROM C_KEY WHERE LENGTH(CD_CODE)=4", false, new PageModel(-1,-1));
  for(int i=0; i<ds.getRowCount(); i++){
      Map<Object,Object> map = new HashMap<Object,Object>();
      map.put("id", i);
      map.put("unit", ds.getString(i, "CD_CODE"));
      map.put("text", ds.getString(i, "CD_CHINA"));
      map.put("state", "closed");
      list.add(i, map);
  }
   }else{
       //子节点
       String unit = request.getParameter("unit");
       String nid = request.getParameter("nid");
       DBRowSet db = ExecuteQuery.getQueryTable("0","SELECT CD_CODE,CD_CHINA FROM C_KEY WHERE LENGTH(CD_CODE)=9 AND CD_CODE LIKE '"+unit+"%'", false, new PageModel(-1,-1));
       for(int n=0; n<db.getRowCount(); n++){
          Map<Object,Object> map = new HashMap<Object,Object>();
          map.put("id",nid+""+n);//这里的nid是父节点的ID必须带过来不然无法选中
          map.put("unit",db.getString(n, "CD_CODE"));
          map.put("text",db.getString(n, "CD_CHINA"));
          list.add(n, map);
       }
   }
   JSONArray json = JSONArray.fromObject(list);

   out.println(json.toString());

3、添加JS触发事件

$('#unit_v').combotree({
   url: '/wid/DataGrid/idx/c_key.jsp?id=1',
   required: true,
   onlyLeafCheck: true,
   onBeforeExpand:function(node) { //这里是点击父节点后进行查询子节点
      var $tree = $('#unit_v').combotree("tree");
      $tree.tree("options").url = "/wid/DataGrid/idx/c_key.jsp?id=2&unit="+node.unit+"&nid="+node.id;
   },
   onSelect: function(node){
      var unit = node.unit;
      if(unit.length==9){
         $("#unit").val(unit);
      }else{
         //$.messager.alert('消息提示','请选择到具体所单位!','warning');          
      }
   }

});


以上就是所有代码了


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值