首頁  >  文章  >  web前端  >  關於Jquery zTree 樹​​控件非同步載入操作

關於Jquery zTree 樹​​控件非同步載入操作

不言
不言原創
2018-06-25 09:47:371811瀏覽

這篇文章主要介紹了Jquery zTree 樹​​控件異步加載操作,學習Jquery zTree異步加載,zTree實現一套能完成大部分常用功能的Tree插件,感興趣的小伙伴們可以參考一下

zTree 是利用JQuery 的核心程式碼,實作一套能完成大部分常用功能的Tree 外掛程式

  • 相容IE、FireFox、Chrome 等瀏覽器

  • 可同時在一個頁面內產生多個Tree 實例

  • 支援JSON 資料

  • #支援一次靜態產生和Ajax 非同步載入兩種方式

  • 支援多種事件回應及回饋

  • 支援Tree 的節點移動、編輯、刪除

  • #支援任意更換皮膚/ 個人化圖示(依賴css)

  • 支援極其靈活的checkbox 或radio 選擇功能

  • 簡單的參數配置實作靈活多變的功能

非同步載入的意思是: 當點擊展開樹節點時,才去請求後台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;
 }</string,object></string,object></hashmap<string,object></hashmap<string,object>

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

在vue webpack中公用一個元件問題(詳細教學)

在JavaScript中如何使用setter與getter方法

有關如何使用JS元件中Gojs元件

##

以上是關於Jquery zTree 樹​​控件非同步載入操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn