Перетащите сетку на панель - PullRequest
4 голосов
/ 07 октября 2010

У меня есть панель, и внутри панели у меня есть три сетки.Я хочу иметь возможность перемещать сетку путем перетаскивания.У меня есть draggable: true и enableDragDrop: true, который, кажется, позволяет мне перетаскивать, но не отбрасывать.

Любая гениальная помощь будет высоко оценена.

1 Ответ

5 голосов
/ 13 марта 2011

Для того, чтобы отбросить что-то перетаскиваемое, вам нужно определить Ext.dd.DropTarget или Ext.dd.DropZone и определить поведение, которое вы хотите при выбрасывании предмета. Используйте DropZone, если в зоне есть несколько целей перетаскивания, которые по-разному обрабатывают перетаскивание, но звучит так, как будто вы хотите DropTarget, который используется для перетаскивания на один элемент (например, внутри вашей панели).

Чтобы вся панель могла опускать предметы, передайте панель в конструктор DropTarget и переопределите функцию notifyDrop:

var panelDropTarget = new Ext.dd.DropTarget(panel, {
    notifyDrop: function(dragsource, event, data) {
        // do something with the dragsource
    }
});

Переданная в функцию dragsource будет содержать вашу сетку (я думаю, что это будет dragsource.panel, но используйте отладку Firebug, чтобы точно определить, что этот исходный объект содержит в ней).

После того, как у вас есть ручка на сетке, вы можете изменить ее порядок на панели, переместить ее куда-либо или задать любое другое поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...