Перейти к основному содержимому

Операции перетаскивания (устаревшее)

warning

Эта статья описывает устаревшую интеграцию. Если вы начинаете с нуля, см. интеграции с фреймворками или настройку на vanilla JS.

Библиотека предоставляет расширение outerdrag, которое позволяет создавать новые события перетаскиванием элементов из внешних компонентов DHTMLX или других планировщиков.

Перетаскивание из внешних компонентов​

Как только пользователь перетащит внешний элемент в планировщик, планировщик откроет окно lightbox для создания нового события.

external_dnd

Интеграция с dhtmlxTree

Давайте рассмотрим внешнюю перетаскивание в контексте компонента dhtmlxTree.

Следуйте этим шагам, чтобы интегрировать планировщик с dhtmlxTree:

  1. Скачать пакет dhtmlxTree и распаковать его содержимое в папку [YOUR APPLICATION ROOT]
  2. Включите необходимые js и css файлы на страницу:
<script src="../codebase/dhtmlxscheduler.js" ...></script>
<link rel="stylesheet" href="../codebase/dhtmlxscheduler.css" ...>
...
  1. Активируйте расширение [outerdrag] на странице:
scheduler.plugins({
outerdrag: true
});
  1. Инициализируйте компонент dhtmlxTree (см. инструкции здесь) :
const tree = new dhtmlXTreeObject("treebox", "100%", "100%", 0);
tree.setImagePath("../common/dhtmlxTree/imgs/csh_yellowbooks/");
tree.loadXML("./data/tree.xml");
  1. Включите перетаскивание в компоненте dhtmlxTree (см. инструкции здесь) :
tree.enableDragAndDrop(true);
  1. Инициализируйте и настройте планировщик:
...
scheduler.init('scheduler_here', new Date(2027, 5, 30), "timeline");
  1. Назначьте обработчик на событие onExternalDragIn, чтобы определить, как текст перетаскиваемого элемента будет преобразован в свойство события:
scheduler.attachEvent("onExternalDragIn", function(id, source, event){
const label = tree.getItemText(tree._dragged[0].id);
scheduler.getEvent(id).text = label;
return true;
});

Интеграция с dhtmlxTree

Теперь вы можете легко создавать новые события, содержащие данные дерева — просто перетащите нужный узел.

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.