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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM