zoukankan      html  css  js  c++  java
  • jquery easyui tree异步加载子节点

    easyui中的树可以从标记中建立,也可以通过指定一个URL属性读取数据建立。如果想建立一棵异步树,需要为每个节点指定一个id属性值,这样在加载数据时会自动向后台传递id参数。

    <ul id="tt"></ul>

    编写前台代码:

    $('#tt').tree({
        url:'/demo2/node/getNodes'    // The url will be mapped to NodeController class and getNodes method
    });

    为测试用,建立一个节点的数据模型:

    @Table(name="nodes")
    public class Node extends ActiveRecordBase{
        @Id public Integer id;
        @Column public Integer parentId;
        @Column public String name;
     
        public boolean hasChildren() throws Exception{
            long count = count(Node.class, "parentId=?", new Object[]{id});
            return count > 0;
        }
    }

    编写后台的控制器代码:

    public class NodeController extends ApplicationController{
        /**
         * get nodes, if the 'id' parameter equals 0 then load the first level nodes,
         * otherwise load the children nodes
         * @param id the parent node id value
         * @return the tree required node json format
         * @throws Exception
         */
        public View getNodes(int id) throws Exception{
            List<Node> nodes = null;
     
            if (id == 0){    // return the first level nodes
                nodes = Node.findAll(Node.class, "parentId=0 or parentId is null", null);
            } else {    // return the children nodes
                nodes = Node.findAll(Node.class, "parentId=?", new Object[]{id});
            }
     
            List<Map<String,Object>> items = new ArrayList<Map<String,Object>>();
            for(Node node: nodes){
                Map<String,Object> item = new HashMap<String,Object>();
                item.put("id", node.id);
                item.put("text", node.name);
     
                // the node has children, 
                // set the state to 'closed' so the node can asynchronous load children nodes 
                if (node.hasChildren()){
                    item.put("state", "closed");
                }
                items.add(item);
            }
     
            return new JsonView(items);
        }
    }

    官网例子地址:http://www.jeasyui.com/tutorial/tree/tree2.php

    http://www.runoob.com/jeasyui/jeasyui-tree-tree2.html

    demo下载

    重要的事情说三遍!!!

    $('#tt').tree({
      method:"POST", url:
    '/demo2/node/getNodes' // The url will be mapped to NodeController class and getNodes method });

    method一定要用POST,GET的话要在URL后面用一个变量来做时间戳处理。

    method一定要用POST,GET的话要在URL后面用一个变量来做时间戳处理。

    method一定要用POST,GET的话要在URL后面用一个变量来做时间戳处理。

    如果这篇文章对您有帮助,您可以打赏我

    技术交流QQ群:15129679

  • 相关阅读:
    Linux目录
    find命令
    107. Binary Tree Level Order Traversal II
    grep命令
    110. Balanced Binary Tree
    111. Minimum Depth of Binary Tree
    什么是泛型
    自动装箱与拆箱
    HDU 3001 Travelling (状压DP + BFS)
    POJ 3411 Paid Roads (状态压缩+BFS)
  • 原文地址:https://www.cnblogs.com/yeminglong/p/6510040.html
Copyright © 2011-2022 走看看