zTree實現(xiàn)節(jié)點修改的實時刷新功能
一、應用場景
在實際應用中會遇到動態(tài)操作樹各節(jié)點的需求,在增加樹節(jié)點后如何實時動態(tài)刷新樹就十分有必要了。
二、項目實踐

比如要在test1234節(jié)點下新建子節(jié)點,首先要選中test1234節(jié)點,添加成功后,根據(jù)test1234結點的TID去后臺請求對應子節(jié)點數(shù)據(jù),實現(xiàn)動態(tài)刷新。刪除節(jié)點類似。
三、代碼實現(xiàn)
1、初始化時必須設置配置
<span style="font-size:14px;"> async:{
enable:true,
url:"../admin/scriptManager/loadNodeByID.htm",
autoParam:["id"],
dataType:"json",
},
view: {
selectedMulti: false
}
}</span>
2、刷新方法
/**
* 刷新當前節(jié)點
*/
function refreshNode() {
/*根據(jù) treeId 獲取 zTree 對象*/
var zTree = $.fn.zTree.getZTreeObj("scriptTree"),
type = "refresh",
silent = false,
/*獲取 zTree 當前被選中的節(jié)點數(shù)據(jù)集合*/
nodes = zTree.getSelectedNodes();
/*強行異步加載父節(jié)點的子節(jié)點。[setting.async.enable = true 時有效]*/
zTree.reAsyncChildNodes(nodes[0], type, silent);
}
/**
* 刷新當前選擇節(jié)點的父節(jié)點
*/
function refreshParentNode() {
var zTree = $.fn.zTree.getZTreeObj("scriptTree"),
type = "refresh",
silent = false,
nodes = zTree.getSelectedNodes();
/*根據(jù) zTree 的唯一標識 tId 快速獲取節(jié)點 JSON 數(shù)據(jù)對象*/
var parentNode = zTree.getNodeByTId(nodes[0].parentTId);
/*選中指定節(jié)點*/
zTree.selectNode(parentNode);
zTree.reAsyncChildNodes(parentNode, type, silent);
}
3、涉及的方法詳解
1、$.fn.zTree.init(obj,zSetting,zNodes)zTree的初始化方法,創(chuàng)建zTree必須使用此方法
參數(shù)說明
obj JQuery Object用于展現(xiàn)zTree的DOM容器
zSetting JSON zTree的配置數(shù)據(jù),具體請參考 “setting 配置詳解”中的各個屬性詳細說明
zNodes Array(JSON)/JSON zTree的節(jié)點數(shù)據(jù),具體請參考 “treeNode 節(jié)點數(shù)據(jù)詳解”中的各個屬性詳細說明
返回值
zTree對象,提供操作zTree的各種方法,對于通過js操作zTree來說必須通過此對象
如果不需要自行設定全局變量保存,可以利用
2、zTreeObj.getSelectedNodes獲取 zTree 當前被選中的節(jié)點數(shù)據(jù)集合
返回值
返回值 Array(JSON)當前被選中的節(jié)點數(shù)據(jù)集合
方法實例:
1. 獲取當前被選中的節(jié)點數(shù)據(jù)集合
var treeObj = $.fn.zTree.getZTreeObj("tree");
var nodes = treeObj.getSelectedNodes();
3、zTreeObj.getNodeByTId根據(jù) zTree 的唯一標識 tId 快速獲取節(jié)點 JSON 數(shù)據(jù)對象
參數(shù):tId String 節(jié)點在 zTree 內(nèi)的唯一標識 tId
返回值:返回值 JSON tId 對應的節(jié)點 JSON 數(shù)據(jù)對象如無結果,返回 null
方法實例:
1. 獲取 tId = "tree_10" 的節(jié)點數(shù)據(jù)
var treeObj = $.fn.zTree.getZTreeObj("tree");
var node = treeObj.getNodeByTId("tree_10");
4、zTreeObj.selectNode選中指定節(jié)點
參數(shù):treeNode JSON 需要被選中的節(jié)點數(shù)據(jù)
addFlag Boolean
addFlag = true 表示追加選中,會出現(xiàn)多點同時被選中的情況
addFlag = false 表示單獨選中,原先被選中的節(jié)點會被取消選中狀態(tài)
setting.view.selectedMulti = false 時,此參數(shù)無效,始終進行單獨選中
5、zTreeObj.reAsyncChildNodes強行異步加載父節(jié)點的子節(jié)點。[setting.async.enable = true 時有效]
參數(shù):parentNode JSON 指定需要異步加載的父節(jié)點 JSON 數(shù)據(jù),
reloadType String reloadType = "refresh" 表示清空后重新加載。reloadType != "refresh" 時,表示追加子節(jié)點處理
isSilent Boolean 設定異步加載后是否自動展開父節(jié)點。isSilent = true 時,不展開父節(jié)點,其他值或缺省狀態(tài)都自動展開。
方法實例
1. 重新異步加載當前選中的第一個節(jié)點
var treeObj = $.fn.zTree.getZTreeObj("tree");
var nodes = treeObj.getSelectedNodes();
if (nodes.length>0) {
treeObj.reAsyncChildNodes(nodes[0], "refresh");
}
4、部分后臺代碼
/**
* 查詢工程對象
*
* @return
*/
@ResponseBody
@RequestMapping("/loadNodeByID.htm")
public List<ZTreeNode> loadNodeByID(Integer id) {
List<ZTreeNode> nodes = cuScriptProjectService.loadNodesByID(id);
// ZTreeNode zTreeNode = cuScriptProjectService.loadNodeByID(id);
return nodes;
}
2、
/**
* 根據(jù)工程ID加載工程節(jié)點數(shù)據(jù)
*/
@Override
public List<ZTreeNode> loadNodesByID(Integer id) {
/* 查詢工程集合 */
List<CUProject> allProjects = this.cuProjectDAO.findAllProjects();
Map<Integer, List<CUProjectVO>> allPorjectList = this.buildProjectVOMap(allProjects);
/* 查詢腳本集合 */
List<CUScript> allScripts = this.cuScriptDAO.findAllScripts();
Map<Integer, List<CUScriptVO>> allScriptMap = this.buildScriptVOMap(allScripts);
/* 構建ZTreeNode數(shù)據(jù)結構 */
List<ZTreeNode> treeNodeList = new ArrayList<ZTreeNode>();
loopBuildZTree(id, allPorjectList, allScriptMap, treeNodeList);
return treeNodeList;
}
以上所述是小編給大家介紹的zTree實現(xiàn)節(jié)點修改的實時刷新功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- ztree獲取當前選中節(jié)點子節(jié)點id集合的方法
- js樹插件zTree獲取所有選中節(jié)點數(shù)據(jù)的方法
- 后臺獲取ZTREE選中節(jié)點的方法
- 在父頁面得到zTree已選中的節(jié)點的方法
- ztree獲取選中節(jié)點時不能進入可視區(qū)域出現(xiàn)BUG如何解決
- jQuery插件zTree實現(xiàn)刪除樹節(jié)點的方法示例
- zTree異步加載展開第一級節(jié)點的實現(xiàn)方法
- jQuery插件zTree實現(xiàn)的基本樹與節(jié)點獲取操作示例
- jQuery插件zTree實現(xiàn)清空選中第一個節(jié)點所有子節(jié)點的方法
- zTree節(jié)點文字過多的處理方法
相關文章
echarts tooltip自適應寬高讓提示框適應不同屏幕尺寸demo
這篇文章主要為大家介紹了echarts tooltip自適應寬高讓提示框適應不同屏幕尺寸,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10
js 復制功能 支持 for IE/FireFox/mozilla/ns
js 復制功能 支持 for IE/FireFox/mozilla/ns...2007-11-11
詳解webpack4之splitchunksPlugin代碼包分拆
這篇文章主要介紹了詳解webpack4之splitchunksPlugin代碼包分拆,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12

