其實(shí)Ztree官網(wǎng)已經(jīng)有詳細(xì)的API文檔,一切以官網(wǎng)上的說明為準(zhǔn),我在此只是結(jié)合實(shí)踐總結(jié)幾條常用的ztree的功能特性.
(ztree的語法結(jié)構(gòu)是基于key-value的形式配置)
1:支持異步加載數(shù)據(jù)
語法配置:
簡要說明:
enable :設(shè)置 zTree 是否開啟異步加載模式.
url:Ajax 獲取數(shù)據(jù)的 URL 地址.
otherParam:Ajax 請求提交的靜態(tài)參數(shù)鍵值對.相當(dāng)于ajax中的data參數(shù).
2:加載數(shù)據(jù)并綁定,一般都是定義數(shù)據(jù)結(jié)構(gòu)實(shí)體即model,此數(shù)據(jù)結(jié)構(gòu)要包含層級關(guān)系通常包括:ID,父ID,Name.
然后配置語法:
或者
簡要說明:
simpleData:即可采用數(shù)組作為數(shù)據(jù)源綁定.此時(shí)異步加載的數(shù)據(jù)可為平行結(jié)構(gòu).
children: 指定節(jié)點(diǎn)數(shù)據(jù)中保存子節(jié)點(diǎn)數(shù)據(jù)的屬性名稱,此時(shí)異步加載的數(shù)據(jù)為樹的折疊結(jié)構(gòu);所以后端加載數(shù)據(jù)時(shí)要使用遞歸算法.
3:支持單選,復(fù)選功能
語法配置:
簡要說明:
enable:設(shè)置 zTree 的節(jié)點(diǎn)上是否顯示 checkbox / radio
chkStyle:勾選框類型(checkbox 或 radio)
radioType:radio 的分組范圍
chkboxType:勾選 checkbox 對于父子節(jié)點(diǎn)的關(guān)聯(lián)關(guān)系
checked:為加載數(shù)據(jù)后復(fù)選框是否勾選.IsChecked為后端數(shù)據(jù)結(jié)構(gòu)model中定義的字段.
4:支持添加子節(jié)點(diǎn),編輯節(jié)點(diǎn),刪除節(jié)點(diǎn)事件
我這里介紹如何采用自定義添加,編輯,刪除按鈕的方式
語法配置:
其中addHoverDom 函數(shù)為:
1 2 3 4 5 6 7 8 | function addHoverDom(treeId, treeNode) { var sObj = $( "#" + treeNode.tId + "_span" ); if ($( "#addBtn_" + treeNode.id).length > 0) return ; var str= "<a id='addBtn_" + treeNode.id + "' onclick='自定義函數(shù)1(" + treeNode.DepartmentID + ")'>添加子節(jié)點(diǎn)</a>" ; str+= "<a id='addBtn1_" + treeNode.id + "' onclick='自定義函數(shù)2(" + treeNode.DepartmentID + ")'>編輯節(jié)點(diǎn)</a>" ; str+= "<a id='addBtn2_" + treeNode.id + "' onclick='自定義函數(shù)3(" + treeNode.DepartmentID + ")'>刪除節(jié)點(diǎn)</a>" ; sObj.after(str); }; |
其中removeHoverDom函數(shù)為:
簡要說明:
addHoverDom:用于當(dāng)鼠標(biāo)移動到節(jié)點(diǎn)上時(shí),顯示用戶自定義控件,顯示隱藏狀態(tài)同 zTree 內(nèi)部的編輯、刪除按鈕
removeHoverDom:用于當(dāng)鼠標(biāo)移出節(jié)點(diǎn)時(shí),隱藏用戶自定義控件,顯示隱藏狀態(tài)同 zTree 內(nèi)部的編輯、刪除按鈕