首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ExtJ4.2和ExtJs6.2之间的gridviewdragdrop中发生了什么变化?

在ExtJ4.2和ExtJs6.2之间的gridviewdragdrop中发生了什么变化?
EN

Stack Overflow用户
提问于 2017-02-17 14:46:54
回答 1查看 689关注 0票数 0

我正在从ExtJs4.2升级到ExtJs6.2,在拖放的工作方式之间发生了一些变化。

在ExtJs4.2中,我在网格中简单地使用了它:

代码语言:javascript
复制
Ext.define('App.view.images.List', {
    extend: 'Ext.grid.Panel',
    viewConfig: {
        plugins: {
            ptype: 'gridviewdragdrop',
            containerScroll: true
        },
        enableTextSelection : true
    },

有一个细节可能很重要:商店被订购了:

代码语言:javascript
复制
Ext.define('App.store.images.Images', {
    extend: 'Ext.data.Store',
    sorters: [{
        property: 'position'
    }],

使用ExtJ4.2时,为了更改记录的顺序,我不需要对drop事件做任何事情。一个简单的拖放改变了线条的顺序。之后,我更新了商店中的position字段。

使用ExtJs6.2,拖放不会改变行的顺序。它只触发drag事件,而事件处理程序中的代码似乎需要更改表中记录的顺序和网格中的行。

是否某个地方有bug,或者这是ExtJ4和6之间拖放功能的更改?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-20 10:40:48

在ExtJs 6中,排序器配置似乎优先于拖放。因此,不再可能使用拖放重新排序网格和排序器。

当试图重新排序一个排序的网格时,会触发drop事件并接收预期的数据,但是网格不会被重新排序。我们必须更改存储在drop-handler中排序的属性。然后,视图将根据新的数据进行更新。

换言之:

  • 在ExtJs 4中,拖放可以直观地重新排序网格,我们必须更新存储以按照顺序反映更改(更新存储上的属性)。
  • 在ExtJs 6中,如果对底层存储进行排序,则不可能通过拖放直观地重新排序网格,因为排序器优先于拖放所施加的顺序。要重新排序网格,我们必须更新存储在drop处理程序中排序的属性。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42300760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档