Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Ext and Drag'n'Drop (https://javascript.ru/forum/extjs/15309-ext-drag%27n%27drop.html)

posta 21.02.2011 16:00

Ext and Drag'n'Drop
 
Приветствую! Подскажите как можно модернизировать следующий пример с сайта Ext:
http://dev.sencha.com/deploy/dev/exa...d_to_grid.html

Нужно привязать событие onDragDrop на перетаскиваемый элемент.

Т.е. Если елемент успешно перетащен - то выполнять определенный код.

Никак не могу понять куда его привязать. Документации ноль или не совсем по теме.

Кто знающий - помогите...

VKS 22.02.2011 11:38

http://dev.sencha.com/deploy/dev/doc....dd.DropTarget

notifyDrop( Ext.dd.DragSource source, Event e, Object data )
: Boolean
The function a Ext.dd.DragSource calls once to notify this drop target that the dragged item has been dropped on it. This method has no default implementation and returns false, so you must provide an implementation that does something to process the drop event and returns true so that the drag source's repair action does not run.

В указанном Вами примере смотрите участок кода

/****
        * Setup Drop Targets
        ***/
        // This will make sure we only drop to the  view scroller element
        var firstGridDropTargetEl =  firstGrid.getView().scroller.dom;
        var firstGridDropTarget = new Ext.dd.DropTarget(firstGridDropTargetEl, {
                ddGroup    : 'firstGridDDGroup',
                notifyDrop : function(ddSource, e, data){
                        var records =  ddSource.dragData.selections;
                        Ext.each(records, ddSource.grid.store.remove, ddSource.grid.store);
                        firstGrid.store.add(records);
                        firstGrid.store.sort('name', 'ASC');
                        return true
                }
        });

posta 23.02.2011 03:33

Цитата:

Сообщение от VKS (Сообщение 93513)

В указанном Вами примере смотрите участок кода

/****
        * Setup Drop Targets
        ***/
        // This will make sure we only drop to the  view scroller element
        var firstGridDropTargetEl =  firstGrid.getView().scroller.dom;
        var firstGridDropTarget = new Ext.dd.DropTarget(firstGridDropTargetEl, {
                ddGroup    : 'firstGridDDGroup',
                notifyDrop : function(ddSource, e, data){
                        var records =  ddSource.dragData.selections;
                        Ext.each(records, ddSource.grid.store.remove, ddSource.grid.store);
                        firstGrid.store.add(records);
                        firstGrid.store.sort('name', 'ASC');
                        return true
                }
        });

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

VKS 24.02.2011 11:03

notifyDrop

posta 24.02.2011 15:05

Цитата:

Сообщение от VKS (Сообщение 93790)
notifyDrop

Дело в том, что я не знаю как привязать это событие. Как правильно написать и обработать. Если не сложно, то напишите код. Будет как дополнительный пример для начинающих.

astral_sight 24.02.2011 15:25

Цитата:

Сообщение от posta (Сообщение 93835)
Дело в том, что я не знаю как привязать это событие. Как правильно написать и обработать. Если не сложно, то напишите код. Будет как дополнительный пример для начинающих.

Не надо ничего привязывать. NotifyDrop уже подразумевает, что дроп произошел. Просто прописываешь туда свою функцию)

notifyDrop : function(ddSource, e, data){

...здесь пишешь что делать после дропа....
}

posta 25.02.2011 18:00

Цитата:

Сообщение от astral_sight (Сообщение 93844)
Не надо ничего привязывать. NotifyDrop уже подразумевает, что дроп произошел. Просто прописываешь туда свою функцию)

notifyDrop : function(ddSource, e, data){

...здесь пишешь что делать после дропа....
}

Спасибо, что пояснили, а то не понимал немного. щас все работает. Так держать! =)

astral_sight 01.03.2011 13:38

Цитата:

Сообщение от posta (Сообщение 94030)
Спасибо, что пояснили, а то не понимал немного. щас все работает. Так держать! =)

Удачи! ;)


Часовой пояс GMT +3, время: 01:41.