我正在从ExtJs4.2升级到ExtJs6.2,在拖放的工作方式之间发生了一些变化。
在ExtJs4.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'
}],使用ExtJ4.2时,为了更改记录的顺序,我不需要对drop事件做任何事情。一个简单的拖放改变了线条的顺序。之后,我更新了商店中的position字段。
使用ExtJs6.2,拖放不会改变行的顺序。它只触发drag事件,而事件处理程序中的代码似乎需要更改表中记录的顺序和网格中的行。
是否某个地方有bug,或者这是ExtJ4和6之间拖放功能的更改?
发布于 2017-02-20 10:40:48
在ExtJs 6中,排序器配置似乎优先于拖放。因此,不再可能使用拖放重新排序网格和排序器。
当试图重新排序一个排序的网格时,会触发drop事件并接收预期的数据,但是网格不会被重新排序。我们必须更改存储在drop-handler中排序的属性。然后,视图将根据新的数据进行更新。
换言之:
drop处理程序中排序的属性。https://stackoverflow.com/questions/42300760
复制相似问题