Как я могу ограничить группировку и перетаскивание внутри TreeView Kendo UI

0

Я получил TreeView для KendoUI следующим образом:

Изображение 174551

На данный момент можно переключать элементы первого уровня с помощью перетаскивания (group, rect-1.., line, text). Нельзя группировать элементы, перетаскивая элементы изнутри группы вне группы. это должно быть возможно только для переключения элементов внутри группы и переключения элементов на первом уровне.

Как я могу это сделать?

Теги:
kendo-ui

1 ответ

0

Я пытаюсь ответить, и я надеюсь, что он соответствует точному поведению, которое вы хотите

Невозможно группировать элементы, перетаскивать элементы изнутри группы вне группы

  • этим я предполагаю, что вы хотите, чтобы элемент/узел не мог изменить его уровень (сначала, если условие)

это должно быть возможно только для переключения элементов внутри группы

  • этим я предполагаю, что вы хотите только внутри 2-го элемента на каждом 1-м элементе, не можете переключать родительское (первое условие)

  • мое (второе условие) не позволяет вам создать третий элемент, перетащив второй элемент поверх другого второго элемента

  • мое (третье условие if) разрешает только перемещение 1-го элемента, на данный момент я прокомментирую его, поскольку я не уверен, что вы имеете в виду, только позволяя первому элементу изменять

Добавьте функцию drop в свое дерево, добавьте этот код:

drop: function(e) {
      var data = $('#treeview-left').data('kendoTreeView').dataItem(e.sourceNode);
      var newData = $('#treeview-left').data('kendoTreeView').dataItem(e.destinationNode);

      // do not allow changing levels
      if (data.parent() != newData.parent() ) {
         console.log("do not allow changing levels");
         e.setValid(false);
      }
      // do not allow adding to leaf node
      if (!newData.hasChidren && e.dropPosition == "over") {
         console.log("do not allow adding to leaf node");
         e.setValid(false);
      }

      //only allow 1st level element drag drop but not 2nd element
      //if (data.parent()){
      //   console.log("only allow 1st parent drag drop");
      //   e.setValid(false);
     // }

},

KENDO DOJO

Ещё вопросы

Сообщество Overcoder
Наверх
Меню