Tree樹狀圖的動態增刪查改(中)新增節點

Xiao coldゞ發表於2019-07-08

一、 新增節點

1、 新增的基本功能樣式可以在tree裡面的案例找到,我這裡用的新增節點是子節點,父節點其實是不用外掛裡面那個新增的。只要配置合適,給子節點新增子節點,該節點就會自動變成父節點的,前提是取消節點鎖定。

2、
下面三個a標籤分別是新增、修改和刪除,把id等值寫對了就能對樹進行編輯操作了。
在這裡插入圖片描述

3、 只要上面的HTML樣式寫對了,點選了a標籤它外掛就會自己呼叫下面的add方法,新增節點後,在data那裡獲取值傳到控制器,再通過從控制器返回的id來新增到剛新增的節點上,這一步非常關鍵,如果沒有成功返回id到節點上,後面對剛新增的節點進行修改或刪除操作時就會失效,並且重新整理下頁面又可以了,這個問題就是新增後的節點沒有id造成的。

//新增節點
        var newCount = 1;
        function add(e) {
            var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
             isParent = e.data.isParent,
             nodes = zTree.getSelectedNodes(),
             treeNode = nodes[0];
            name = "新建分類" + (newCount++);
            if (treeNode.id == 403) {
                return layer.msg("系統初始化分類,不允許編輯、刪除或新增子分類。")
            } $.ajax({
                url: "AddNode",     
data: {
                    PID: treeNode.id,
                    name: name,//傳到控制器
                },type: "post",
                success: function (data) {
                    if (data.State) {
 //此方法是js在前段增加節點方法,一定要通過後臺返回的id來增加,不然新增的節點會出現節點id為null的問題  
                   zTree.addNodes(treeNode, {
id: data.viscountID, pId: data.id, isParent: isParent, name: name });
                    }
                    else {
                        layer.msg(data.Text) 
}
}
});
return false;
        };


3、 傳到控制器的是當前選擇的樹節點主鍵id,它的主鍵id新增節點後就是子節點的父id了。頁面傳過來的值建議用Request接收,得到值了之後後面的就是普通的新增了,接著儲存成功後要把剛新增的節點id給傳到頁面,這樣新增後的節點點選它是可以獲取到它的id的。

在這裡插入圖片描述

相關文章