In fact, the Ztree official website already has detailed API documentation. Everything is subject to the instructions on the official website. I am just summarizing a few commonly used ztree functional features based on practice.
(The syntax structure of ztree is based on key-value configuration)
1: Support asynchronous loading of data
Syntax configuration:
async: { enable: true, url:'abc.ashx', otherParam: { "request": "requestname" } }
Brief description:
enable: Set whether zTree enables asynchronous loading mode.
url: URL address for Ajax to obtain data.
otherParam: Static parameter key-value pair submitted by Ajax request. Equivalent to the data parameter in ajax.
2: Load data and bind . Generally, the data structure entity is defined as model. This data structure must contain hierarchical relationships and usually includes: ID, parent ID, Name.
Then configure the syntax:
data: { simpleData: { enable: true } }
or
data: { key: { children: "childrens", checked: "IsChecked" } }
Brief description:
simpleData: You can use arrays as data source binding. At this time, the data loaded asynchronously can be a parallel structure.
children: Specify the attribute name to save the child node data in the node data. At this time, the data loaded asynchronously is the folded structure of the tree; so the recursive algorithm must be used when the backend loads data.
3: Support single selection and check function
Syntax configuration:
check: { enable: true, chkStyle: "checkbox", radioType: "all" chkboxType:{ "Y": "", "N": "" } }, data: { key: { checked: "IsChecked" } }
Brief description:
enable: Set whether checkbox / radio is displayed on the zTree node
chkStyle: checkbox type (checkbox or radio)
radioType:radio grouping range
chkboxType: Check the checkbox for the relationship between parent and child nodes
checked: Indicates whether the check box is checked after loading data. IsChecked is a field defined in the back-end data structure model.
4: Support adding child nodes, editing nodes, and deleting node events
Here I will introduce how to customize adding, editing, and deleting buttons
Syntax configuration:
view: { addHoverDom: addHoverDom, removeHoverDom: removeHoverDom }
The addHoverDom function is:
function addHoverDom(treeId, treeNode) { var sObj = $("#" + treeNode.tId + "_span"); if ($("#addBtn_" + treeNode.id).length > 0) return; var str= "<a id='addBtn_" + treeNode.id + "' onclick='自定义函数1(" + treeNode.DepartmentID + ")'>添加子节点</a>"; str+= "<a id='addBtn1_" + treeNode.id + "' onclick='自定义函数2(" + treeNode.DepartmentID + ")'>编辑节点</a>"; str+= "<a id='addBtn2_" + treeNode.id + "' onclick='自定义函数3(" + treeNode.DepartmentID + ")'>删除节点</a>"; sObj.after(str); };
The removeHoverDom function is:
function removeHoverDom(treeId, treeNode) { $("#addBtn_" + treeNode.id).unbind().remove(); $("#addBtn1_" + treeNode.id).unbind().remove(); $("#addBtn2_" + treeNode.id).unbind().remove(); };
Brief description:
addHoverDom: used to display user-defined controls when the mouse moves to a node. The hidden state is the same as the edit and delete buttons inside zTree
removeHoverDom: Used to hide user-defined controls when the mouse moves out of a node. The hidden state is the same as the edit and delete buttons inside zTree