4
hao
2025-04-16 c5fb1fbcbb2bf4d511773d348f9ef625855c61fc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<!DOCTYPE html>
<HTML>
<HEAD>
    <TITLE> ZTREE DEMO - reAsyncChildNodes</TITLE>
    <meta content="text/html; charset=UTF-8" http-equiv="content-type">
    <link href="../../../css/demo.css" rel="stylesheet" type="text/css">
    <link href="../../../css/zTreeStyle/zTreeStyle.css" rel="stylesheet" type="text/css">
    <script src="../../../js/jquery-1.4.4.min.js" type="text/javascript"></script>
    <script src="../../../js/jquery.ztree.core.js" type="text/javascript"></script>
    <!--  <script type="text/javascript" src="../../../js/jquery.ztree.excheck.js"></script>
      <script type="text/javascript" src="../../../js/jquery.ztree.exedit.js"></script>-->
    <SCRIPT type="text/javascript">
        <!--
        var setting = {
            view: {
                selectedMulti: false
            },
            async: {
                enable: true,
                url:"../asyncData/getNodes.php",
                autoParam:["id", "name=n", "level=lv"],
                otherParam:{"otherParam":"zTreeAsyncTest"},
                dataFilter: filter
            },
            callback: {
                beforeClick: beforeClick,
                beforeAsync: beforeAsync,
                onAsyncError: onAsyncError,
                onAsyncSuccess: onAsyncSuccess
            }
        };
 
        function filter(treeId, parentNode, childNodes) {
            if (!childNodes) return null;
            for (var i=0, l=childNodes.length; i<l; i++) {
                childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
            }
            return childNodes;
        }
        function beforeClick(treeId, treeNode) {
            if (!treeNode.isParent) {
                alert("Please select one parent node...");
                return false;
            } else {
                return true;
            }
        }
        var log, className = "dark";
        function beforeAsync(treeId, treeNode) {
            className = (className === "dark" ? "":"dark");
            showLog("[ "+getTime()+" beforeAsync ]&nbsp;&nbsp;&nbsp;&nbsp;" + ((!!treeNode && !!treeNode.name) ? treeNode.name : "root") );
            return true;
        }
        function onAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
            showLog("[ "+getTime()+" onAsyncError ]&nbsp;&nbsp;&nbsp;&nbsp;" + ((!!treeNode && !!treeNode.name) ? treeNode.name : "root") );
        }
        function onAsyncSuccess(event, treeId, treeNode, msg) {
            showLog("[ "+getTime()+" onAsyncSuccess ]&nbsp;&nbsp;&nbsp;&nbsp;" + ((!!treeNode && !!treeNode.name) ? treeNode.name : "root") );
        }
 
        function showLog(str) {
            if (!log) log = $("#log");
            log.append("<li class='"+className+"'>"+str+"</li>");
            if(log.children("li").length > 8) {
                log.get(0).removeChild(log.children("li")[0]);
            }
        }
        function getTime() {
            var now= new Date(),
            h=now.getHours(),
            m=now.getMinutes(),
            s=now.getSeconds(),
            ms=now.getMilliseconds();
            return (h+":"+m+":"+s+ " " +ms);
        }
        
        function refreshNode(e) {
            var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
            type = e.data.type,
            silent = e.data.silent,
            nodes = zTree.getSelectedNodes();
            if (nodes.length == 0) {
                alert("Please select one parent node at first...");
            }
            for (var i=0, l=nodes.length; i<l; i++) {
                zTree.reAsyncChildNodes(nodes[i], type, silent);
                if (!silent) zTree.selectNode(nodes[i]);
            }
        }
 
        $(document).ready(function(){
            $.fn.zTree.init($("#treeDemo"), setting);
            $("#refreshNode").bind("click", {type:"refresh", silent:false}, refreshNode);
            $("#refreshNodeSilent").bind("click", {type:"refresh", silent:true}, refreshNode);
            $("#addNode").bind("click", {type:"add", silent:false}, refreshNode);
            $("#addNodeSilent").bind("click", {type:"add", silent:true}, refreshNode);
        });
        //-->
    </SCRIPT>
 
</HEAD>
 
<BODY>
<h1>Dynamic Tree - zTree methods</h1>
<h6>[ File Path: core/async_fun.html ]</h6>
<div class="content_wrap">
    <div class="zTreeDemoBackground left">
        <ul class="ztree" id="treeDemo"></ul>
    </div>
    <div class="right">
        <ul class="info">
            <li class="title"><h2>1, Explanation of reAsyncChildNodes</h2>
                <ul class="list">
                <li class="highlight_red">How to use zTreeObj.reAsyncChildNodes method,  please see the API documentation.</li>
                <li><p>This Demo can only select one parent node<br/>
                    Try: [ <a href="#" id="refreshNode" onclick="return false;">reload</a> ]&nbsp;&nbsp;&nbsp;&nbsp;[ <a href="#" id="addNode" onclick="return false;">append</a> ]</p>
                </li>
                <li><p><span class="highlight_red">'isSilent' parameter is only for the collapsed state of the parent node.</span><br/>
                    Try: [ <a href="#" id="refreshNodeSilent" onclick="return false;">Quietly reloaded</a> ]&nbsp;&nbsp;&nbsp;&nbsp;[ <a href="#" id="addNodeSilent" onclick="return false;">Quietly append</a> ]<br/>
                    async log:<br/>
                    <ul class="log" id="log"></ul></p>
                </li>
                </ul>
            </li>
            <li class="title"><h2>2, Explanation of setting</h2>
                <ul class="list">
                <li class="highlight_red">For useing reAsyncChildNodes method,  you need to set attributes in setting.async, see the API documentation for more related contents.</li>
                </ul>
            </li>
            <li class="title"><h2>3, Explanation of treeNode</h2>
                <ul class="list">
                <li>Same as 'Dynamic Tree with Ajax'</li>
                </ul>
            </li>
            <li class="title"><h2>4、Other explanation</h2>
                <ul class="list">
                <li>Same as 'Dynamic Tree with Ajax'</li>
                </ul>
            </li>
        </ul>
    </div>
</div>
</BODY>
</HTML>