后台:

    实体树

    public class TreeNode{

      private String id;
      private String text;
      private String level;
      private List<LogTypeTreeNode> children = new ArrayList<>();
      public LogTypeTreeNode(String id, String text, String level){
            this.id = id;
            this.text = text;
            this.level = level;
         }

      //get()、set()

    }

    形成展示成的树的结构,需用到递归

    public List<TreeNode> getTree() {
            List<Map<String, Object>> list = sieveLogService.getEventType();

        //获取所有数据需包含(PARENT_ID 父id(PARENT_ID=-1说明是根节点),TYPE_ID 节点id,TYPE_NAME节点名称,TREE_LEVEL 树层级数)
            List<TreeNode> allNode = new ArrayList<TreeNode>();// 存放所有节点的集合
            for (Map<String, Object> map : list) {
                if (MapUtils.getString(map, "PARENT_ID").equals("-1")) {
                    TreeNode tn = new TreeNode(MapUtils.getString(map, "TYPE_ID"),
                               MapUtils.getString(map, "TYPE_NAME"), MapUtils.getString(map, "TREE_LEVEL"));
                    allNode.add(tn);
                }
            }
            for (LogTypeTreeNode root : allNode) {
                  bulidTreeNode(root, list);
            }
            return allNode;
      }

    private TreeNode bulidTreeNode(TreeNode tn, List<Map<String, Object>> list) {
            for (Map<String, Object> map : list) {
                if (MapUtils.getString(map, "PARENT_ID").equals(tn.getId())) {
                    TreeNode tnChild = new TreeNode(MapUtils.getString(map, "TYPE_ID"),
                            MapUtils.getString(map, "EVENT_TYPE_NAME"), MapUtils.getString(map, "TREE_LEVEL"));
                    tn.addChildNode(tnChild);
                    bulidTreeNode(tnChild, list);
                }
            }
            return tn;
      }

    前台:

    <input type="checkbox" class="easyui-combotree"
                                                    data-options="multiple:true" style="width: 300px;"    id="id"  />

    用ajax获取即可展示:

    $.ajax({
              url : "/.../getTree",
              dataType : "JSON",
              success : function(data) {
                  $('#id').combotree('loadData', data);        //当数据展示为undefind时,可用 $('#id').combotree('loadData', eval(data));       
              }
          });

    获取选中的树:1.只能获取节点id:var logType = $("#id").combotree("getValues");

           2.获取到树节点:var t = $('#operationType').combotree('tree'); // 得到树对象
                          var node = t.tree('getChecked', [ 'checked', 'indeterminate' ]); // 得到选择的节点

                  循环node.length,node[i].level:树层级数,node[i].id:节点id,node[i].text:节点名称

    编辑时回显选中树节点:

      后台:把id值拼成以逗号隔开的字符串,在前台以el表达式接收到<input  type="hidden" id="allType" value="${allType}" />

      前台:在以上加载完树之后

          $.ajax({
                    url : "/.../getTree",
                    dataType : "JSON",
                    success : function(data) {
                        $('#id').combotree('loadData', data);        //当数据展示为undefind时,可用 $('#id').combotree('loadData', eval(data));

              //编辑时显示打上对勾
                          var at = $("#allType").val().split(",");                   
                          $('#id').combotree('setValues', at);    
                    }
                });

     设置树的下拉面板的宽度:

      $("#id").combotree({

         panelWidth:200,

         panelHeight:200

      )};

    (还有另外加载的树的方法总结,请持续关注)

关于combotree的用法总结的更多相关文章

  1. easyui 之ComboTree 用法Demo

    实现效果如下: HTML部分: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="ser ...

  2. Easyui主要组件用法

    Easyui主要组件用法说明: 1.  combogrid用法 说明:combogrid可提供翻页列表的数据选择并可进行数据的过滤查询(查询的传人参数为q,可在控制器中获取这个参数传过来的值,下面的示 ...

  3. EasyUI –tree、combotree学习总结

    EasyUI –tree.combotree学习总结 一.   tree总结 (一).tree基本使用 tree控件是web页面中将数据分层一树形结构显示的. 使用$.fn.tree.defaults ...

  4. 表单(上)EasyUI Form 表单、EasyUI Validatebox 验证框、EasyUI Combobox 组合框、EasyUI Combo 组合、EasyUI Combotree 组合树

    EasyUI Form 表单 通过 $.fn.form.defaults 重写默认的 defaults. 表单(form)提供多种方法来执行带有表单字段的动作,比如 ajax 提交.加载.清除,等等. ...

  5. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  6. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  7. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  8. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  9. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

随机推荐

  1. iOS获取设备型号和App版本号等信息(OC+Swift)

    iOS获取设备型号和App版本号等信息(OC+Swift) 字数1687 阅读382 评论3 喜欢10 好久没有写过博客了,因为中间工作比较忙,然后有些个人事情所以耽误了.但是之前写的博客还一直有人来 ...

  2. Extjs6(三)——用extjs6.0写一个简单页面

    本文基于ext-6.0.0 一.关于border布局 在用ext做项目的过程中,最常用到的一种布局就是border布局,现在要写的这个简单页面也是运用border布局来做.border布局将页面分为五 ...

  3. 业务订单号生成算法,每秒50W左右,不同机器保证不重复,包含日期可读性好

    参考snowflace算法,基本思路: 序列12位(更格式化的输出后,性能损耗导致每毫秒生成不了这么多,所以可以考虑减少这里的位,不过留着也并无影响) 机器位10位 毫秒为左移 22位 上述几个做或运 ...

  4. 解决初次使用webpack+antd-mobile时css不生效的问题

    前端这块,最火的是angular.react.vue.根据你具体的业务场景,选择合适的框架或者类库.以react为例,新建一个项目时, css组件按钮,图片轮播等组件,最好不要重复造轮子,选择业内规范 ...

  5. Roguelike元素对游戏设计的影响

    Roguelike game自1980年以来,就占据着游戏市场中很大的份额,而现如今的很多游戏中,也加入了Roguelike元素来起到更好的效果.我们知道Roguelike game中有着一些看似任性 ...

  6. C#使用NOPI导入Excel

    使用NOPI导入Excel文档 NOPI版本:2.3.0,依赖于NPOI的SharpZipLib版本:0.86,经测试适用于.net4.0+ 记录遇到的几个问题 NOPI中的IWorkbook接口:x ...

  7. windows下编译java源文件的编码错误

    import java.util.Arrays;public class ArrayAsAReference{ public static void main(String[] args) { int ...

  8. 记事本app TOP5(个人观点)

    1.为知笔记 为知笔记定位于高效率工作笔记,主打工作笔记的移动应用,是目前国内唯一一款"工作笔记"的云笔记类产品.除了常用的笔记功能保存的网页.灵感笔记.重要文档.照片.便签等,为 ...

  9. js事件触发(一)

    今日和一位前端童鞋聊了下js触发事件的两种形式: 第一种在jsp/vm上做类似onClick=functionName()的触发:另一种是在js文件中增加对应节点的监听事件触发.前者页面掺杂了js的内 ...

  10. 属于自己的MES(一)概念

    什么叫MES(生产制造执行系统)? 从几个方面来简单说下: 1.定位 没有MES前的工厂生产模式,公司MRP系统与生产现场之间透过人为方式沟通,使生产现场如同黑箱作业,无法掌握实时正确信息. MES的 ...