Переписал мое исправление как плагин панели сетки, чтобы сделать его немного чище и более модульным:
Ext.define('Cls.grid.plugin.PagingRefreshSpinner', {
alias: 'plugin.pagingrefreshspinner',
extend: 'Ext.AbstractPlugin',
pluginId: 'pagingRefreshSpinner',
init: function(grid) {
var docked = grid.getDockedItems('pagingtoolbar'),
btns = [],
setIcon = function(buttons, cls)
{
Ext.each(buttons, function(b){
if(Ext.isFunction(b.setIconCls)) b.setIconCls(cls);
});
};
Ext.each(docked, function(cmp) {
var btn = cmp.getComponent('refresh');
if(btn) btns.push(btn);
});
if(btns.length < 1) return;
grid.getStore().on('beforeload', function() {
setIcon(btns, 'x-tbar-wait');
});
grid.getStore().on('load', function() {
setIcon(btns, 'x-tbar-loading');
});
}
});
В вашей конфигурации сетки просто добавьте {ptype: 'pagingrefreshspinner'}
в его массив plugins
.И как я уже упоминал в своем предыдущем ответе, не забудьте добавить это правило в свой CSS:
.x-reset .x-tbar-wait {
background-image: url(ext4_dir/resources/themes/images/gray/grid/loading.gif);
}