在ExtJs 4.2和ExtJs 6.2之间的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之间是否存在错误,或者这是否改变了拖放功能?


我看起来好像在ExtJs 6中,分拣机配置优先于拖放。 因此,仅使用拖放操作就不能再使用分拣机对网格进行重新排序。

当尝试重新排序已排序的网格时,将drop事件并接收预期数据,但网格不会重新排序。 我们必须更改商店在drop handler中排序的属性。 该视图将根据新数据进行更新。

换一种说法:

  • 在ExtJs 4中,拖放对网格进行可视化重新排序,并且我们必须更新商店以反映订单中的更改(更新商店排序的属性)。
  • 在ExtJs 6中,如果对底层商店进行排序,则无法通过拖放对网格进行可视化重新排序,因为分类器优先于拖放所施加的顺序。 要重新排序网格,我们必须更新商店在drop处理程序中排序的属性。
  • 链接地址: http://www.djcxy.com/p/19553.html

    上一篇: What has changed in gridviewdragdrop between ExtJs 4.2 and ExtJs 6.2

    下一篇: Firing custom event from custom component and handle event in viewController