Невозможно отсортировать узлы с помощью ExtDnd5, только для дочерних - PullRequest
0 голосов
/ 01 июля 2019

Я хочу использовать FancyTree с таблицей и расширениями dnd5.Но когда я перетаскиваю узел, я могу только перетащить его в другой узел, а не между двумя узлами, на одном и том же уровне глубины.

Я пытался сравнить свой код с примерами, но не могу найти никаких отличий.Вот мой код:

Разметка таблицы HTML.Таблицы-классы предназначены для Bootstrap.@ Model.TableId предназначен для бритвы MVC5.И то, и другое не должно иметь значения, и проблема все еще существует, когда я удаляю классы Bootstrap.

<table class="treeTableControl table table-bordered table-striped table-hover" id="treetable_@Model.TableId">
        <colgroup>
            <col width="30px" />
            <col width="30px" />
            <col width="*" />
        </colgroup>
        <thead>
            <tr>
                <th> </th>
                <th>#</th>
                <th>Name</th>
            </tr>
        </thead> 
        <tbody>
        </tbody>
    </table>

JavaScript

init() {
        var me = this;

        me.tableid = me.$tree.data("tableid");
        me.treeTableData = CSB32["treeTableData_" + me.tableid];

        me.$tree.fancytree({
            checkbox: true,
            titleTabbable: true,
            source: me.treeTableData,
            extensions: ["table", "gridnav", "dnd5", "edit"],
            table: {
                checkboxColumnIdx: 0,
                nodeColumnIdx: 2
            },
            renderColumns: function (event, data) {
                var node = data.node;
                var $tdList = $(node.tr).find(">td");

                $tdList.eq(1)
                    .text(node.getIndexHier())
                    .addClass("alignRight");
            },
            dnd5: {
                preventVoidMoves: false,
                preventRecursion: true,
                autoExpandMS: 400,
                dragStart: function (node, data) {
                    return true;
                },
                dragEnter: function (node, data) {
                    return true;
                },
                dragDrop: function (node, data) {
                    data.otherNode.moveTo(node, data.hitMode);
                }
            },
            edit: {
                triggerStart: ["f2", "dblclick"],
                close: function (event, data) {
                    if (data.save && data.isNew) {
                        me.$tree.trigger("nodeCommand", { cmd: "addSibling" });
                    }
                }
            }
        });
    }

Мой пример исходных данных

{"children":[{"key":1000010,"title":"TG 628s 4-Port ETH Switch ","children":[]},
{"key":1000008,"title":"4400 Series WLAN Controller","children":[
 {"key":1000009,"title":"CISCO 3845","children":[]},
 {"key":1000007,"title":"10/100/1000Base-T LX","children":[]}]},
{"key":1000011,"title":"Test Product","children":[]}],"columns":[]}

Здесь я пытаюсь переместить # 3 между # 1 и # 2, но я могу только добавить узел как дочерний

1 Ответ

0 голосов
/ 08 июля 2019

Хорошо, я обнаружил ошибку при попытке создать JSFiddle.Моя версия jQuery была слишком старой.С 3.x я могу сортировать узлы, как я хочу.

...