ztree添加节点和修改节点自动更新当前节点在ztree中的显示顺序

1、新增和修改的时候先将parentNode获取到,定义全局变量

var parentNode = null;

复制代码
//加入添加资源按钮
        function addHoverDom(treeId, treeNode) {
            var obj = $('#' + treeNode.tId + '_span');
            if ($('#add_' + treeNode.tId).length > 0) {
                return;
            }
            var menu = '<span id="add_'+treeNode.tId+'" class="button add" title="添加子资源"></span>';
            obj.after(menu);
            var btn = $('#add_' + treeNode.tId);
            if (btn)
                btn.bind('click', function() {
                    parentNode = treeNode;
                    var tId = treeNode.tId;
                    var parentcode = treeNode.codee;
                    var code = getLastCode(treeNode);
                    //alert(treeNode.id);
                    $('#iframe').attr(
                            'src',
                            '${_baseUrl}/add.do?nodeId=' + tId + '&parentcode='
                                    + parentcode + '&code=' + code);
                    return false;
                });
        };
复制代码

 

复制代码
//点击编辑按钮进入编辑
        function beforeEditName(treeId, treeNode) {
            status = 'edit';
            parentNode = treeNode.getParentNode();
            $('#iframe')
                    .attr('src', '${_baseUrl}/edit.do?resId=' + treeNode.id);
            return false;
        }
复制代码

当新增或者修改结束的时候,将当前节点的顺序返回:

复制代码
 $("#addForm")
                .ajaxSubmit(
                        {
                            type: "post",
                            url: '${_baseUrl}/save.do',
                            dataType: 'json',
                            success: function (res) {
                                window.parent.addChildNode(res,$("#order").val());//在父窗口中添加节点到指定顺序处
                                window.location.href = '${_baseUrl}/detail.do?resId='
                                        + res.id;
                            },
                            error: function (res) {
                            }
                        });



 $("#editForm")
                .ajaxSubmit(
                        {
                            type: "post",
                            url: '${_baseUrl}/update.do',
                            dataType: 'json',
                            success: function (res) {
                                window.parent.updateNode(res,$("#order").val());//在父窗口中更新顺序
                                window.location.href = '${_baseUrl}/detail.do?resId='
                                        + res.id;
                            },
                            error: function (res) {
                            }
                        });
复制代码

在ztree新增和修改节点之前先获取当前顺序在父节点的所有子节点中占的顺序:

复制代码
//获取子节点的最大code
        function getIndexOfChildNode(order) {
            
            var childNodes = parentNode.children;
            var index = 0;
            if (childNodes) {
                var lastCode = 0;//childNodes[childNodes.length - 1].codee;
                childNodes.forEach(function(n) {
                    n = parseInt(n.order);
                    index = n < order ? ++index : index;
                });
                
            }
            
            return index;
        }
复制代码

调用ztree自身的添加节点的方法 zTree.addNodes(parentNode, index, node);将节点添加到指定顺序下

复制代码
//在资源树中添加资源
        function addChildNode(node,order) {
            var zTree = $.fn.zTree.getZTreeObj('zTree');
            var index = getIndexOfChildNode(order);
            zTree.addNodes(parentNode, index, node);
        }
复制代码

对于修改的节点信息,可以先删除后添加:

复制代码
//更新资源树中的资源
        function updateNode(res,order) {
            var zTree = $.fn.zTree.getZTreeObj('zTree');
            var node = zTree.getNodeByParam("id", res.id, null);
            zTree.removeNode(node);
            var index = getIndexOfChildNode(order);
            zTree.addNodes(parentNode, index, res);
        }
复制代码

posted on 2017-12-19 17:32  海风1213  阅读(12354)  评论(1编辑  收藏  举报

导航