Jquery樹控件ZTree異步加載


異步加載的意思就是: 當點擊展開樹節點時,才去請求后台action返回點擊節點的子節點數據並加載。

這里面主要設計ztree的setting變量的async屬性設置:

var setting = {
       async: {
           enable: true,
           url:InitServiceIpsData.action,
           autoParam:[id, name],
           dataFilter: filter      
       },

當點擊展開樹節點時,會請求url指定的action獲取子節點數據,然后綁定到ztree上。

注意這里后台action返回的是JSON字符串,而ztree綁定新的節點數據只接收數組,所以需要在綁定前用filter函數進行數據清洗轉換操作,將字符串轉換為數組:

//過濾異步加載ztree時返回的數據
function filter(treeId, parentNode, childNodes) {
    if (!childNodes)
        return null;       
      childNodes = eval((+childNodes+));  //必須轉換為[{id:103,pId:1,name:'子節點3'}];這樣的格式
        return childNodes;
}

這樣點擊展開ztree樹節點時,就會請求action獲取子節點數據並綁定了。

下面是后台action的一個實現:

public String InitServiceIpsData()
    {
        HttpServletRequest request = ServletActionContext.getRequest();
        String id = request.getParameter(id);
        String name = request.getParameter(name);
        System.out.println(請求獲取+name+的ip列表);
         
        List<hashmap<string,object>> list = new ArrayList<hashmap<string,object>>();          
        for(int i = 1; i <= 2; i++){  
            HashMap<string,object> hm = new HashMap<string,object>();            
            hm.put(id, id + 0 + i);
            hm.put(pId, id);
            hm.put(name, name + _IP_ + i);
            hm.put(isParent, false);
            list.add(hm);
        }  
           
        JSONArray finalJson = JSONArray.fromObject(list);
        this.initServiceIpsData = finalJson.toString();
        return SUCCESS;
    }

  


免責聲明!

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



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