在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中排序的属性。 该视图将根据新数据进行更新。
换一种说法:
drop
处理程序中排序的属性。 上一篇: What has changed in gridviewdragdrop between ExtJs 4.2 and ExtJs 6.2
下一篇: Firing custom event from custom component and handle event in viewController