Кендо древовидное перетаскивание всегда последняя позиция родителя - PullRequest
0 голосов
/ 04 февраля 2020

У меня проблема с деревом кендо. У меня есть дерево с «папками». Я включил функцию перетаскивания, но всякий раз, когда я перетаскиваю папку в другую папку, она позиционируется как последний элемент этой папки, куда она была удалена.

Мой источник данных имеет тип kendo.data.HierarchicalDataSource и входящие данные сортируются по заголовку / тексту в алфавитном порядке. Я хочу, чтобы удаленный узел также сортировался по алфавиту, поэтому в некотором роде я хочу вызвать курортный вызов на узел, на котором был удален другой узел.

Как бы мне этого добиться?

Я уже пытался определить параметр сортировки в объекте kendo.data.HierarchicalDataSource, но это мало что меняет.

1 Ответ

1 голос
/ 04 февраля 2020

Под капотом HierarchicalDataSource находится источник данных, который имеет массив дочерних элементов (элементов), которые также являются источниками данных. Часто элементы обрабатываются как обычное поле, и операции с основным источником данных не выполняются рекурсивно для дочерних элементов.

Примером этого является сортировка. Как вы видите на https://docs.telerik.com/kendo-ui/controls/navigation/treeview/how-to/binding/sort-child-nodes, вам нужно рекурсивно сортировать детей:

    function setSort(items){
      for(var i=0; i < items.length; i++){
        if(items[i].hasChildren){
          items[i].children.sort({field: "FullName", dir: "desc"});
          setSort(items[i].children.view());
        }
      }
    }
...