我正在使用extjs GridPanel
当我加载商店时:
I do Ext.getBody().mask();
Grid 'afterrender' event fires first
Store 'load' event fires second
I attached unmask function to store load 'event'
但事件发生后不久, 当我看到白色网格(在unmask和行之间填充)。
在真正的完整后续事件中取消屏蔽的正确方法是什么? 我的意思是 - 当所有行都被渲染时。
由于
答案 0 :(得分:3)
我打算在文档中建议gridview的loadMask
配置为here。但是我注意到它出于某种原因不适合我。
如果它对你不起作用,只需使用gridview的refresh
事件作为涵盖的here。它只会在数据完全加载到网格后触发。您可以通过gridpanel的viewConfig
配置附加它,如下所示:
Ext.create('Ext.grid.Panel', {
title: 'My Grid Panel',
// ... other grid panel configs
viewConfig: {
listeners: {
refresh: function(gridview) {
console.log(gridview);
console.log('is fully loaded');
}
}
},
});
或者如果您使用的是MVC应用程序架构:
Ext.define('MyApp.controller.MyController', {
extend: 'Ext.app.Controller',
models: ['MyModel'],
stores: ['MyStore'],
views: ['MyGridPanel'],
init: function() {
var me = this;
me.control({
// ... other event handlers
'mygridpanel > gridview': {
refresh: function(gridview) {
console.log(gridview);
console.log('is fully loaded');
}
},
});
}
});