2017-02-17 31 views
0

Я обновляюсь от ExtJs 4.2 до ExtJs 6.2, и что-то изменилось между тем, как работает drag and drop.Что изменилось в gridviewdragdrop между ExtJs 4.2 и ExtJs 6.2

В ExtJS 4.2, я был просто использовать его в сетке:

Ext.define('App.view.images.List', { 
    extend: 'Ext.grid.Panel', 
    viewConfig: { 
     plugins: { 
      ptype: 'gridviewdragdrop', 
      containerScroll: true 
     }, 
     enableTextSelection : true 
    }, 

Там в деталь, которая может иметь важное значение: в магазине упорядочено:

Ext.define('App.store.images.Images', { 
    extend: 'Ext.data.Store', 
    sorters: [{ 
     property: 'position' 
    }], 

С ExtJS 4.2, Мне нужно было ничего не делать на мероприятии drop, чтобы изменить порядок записей. Простое перетаскивание изменило порядок строк. После этого я обновил поля position в магазине.

С ExtJs 6.2 перетаскивание не изменяет порядок линий. Он запускает только событие drag, и, похоже, это зависит от кода в обработчике события, чтобы изменить порядок записей в таблице и строк в сетке.

Есть ли ошибка где-то, или это изменение функциональности перетаскивания между ExtJs 4 и 6?

ответ

0

Я выгляжу так, как если бы в ExtJs 6, конфигурация сортировщика имеет преимущество перед перетаскиванием. Поэтому невозможно изменить порядок сетки с помощью сортировщика, используя только перетаскивание.

При попытке изменить порядок сортированной сетки событие drop запускается и получает ожидаемые данные, но сетка не переупорядочена. Мы должны изменить свойство, которое хранилище сортируется в обработчике drop. Затем представление обновится в соответствии с новыми данными.

Других слов:

  • В ExtJS 4, перетаскивание сортируют сетку визуально, и мы должны обновить магазин, чтобы отразить изменения в порядке (обновить свойство магазина сортируются на).
  • В ExtJs 6 невозможно изменить порядок сетки визуально с помощью перетаскивания, если сортировка базового хранилища сортируется, поскольку сортировщики имеют приоритет над порядком, налагаемым перетаскиванием. Чтобы изменить порядок сетки, мы должны обновить свойство, которое хранилище сортируется в обработчике drop.