Я нашел много ссылок на то, как создать «загрузочное» сообщение или маску при загрузке данных в сетку в Ext JS 4 через хранилище данных / прокси (я использую прямой тип).
Итак, я добавил это в свой контроллер в один момент (потому что я НЕ получал сообщение о загрузке ранее):
init: function() {
var store = this.getEncountersStore();
store.on({
beforeload: function(store,operation,eopts) {
Ext.getBody().mask('Loading...');
},
load: function(store,records,success,operation,eopts) {
Ext.getBody().unmask();
}
});
}
Это, кажется, работает для меня в моем приложении MVC, однако затем я добавил задачуТаймер менеджера для автоматического обновления данных сетки каждые 10 секунд:
this.runningTask = Ext.TaskManager.start ({
run: this.loadEncounterData,
interval: 10000,
scope: this
});
loadEncounterData: function() {
var store = this.getEncountersStore();
store.load({
params: {
},
callback: function(r,options,success) {
if(success == true)
...
} //callback
}); //store.load
Я заметил, что теперь на экране появилось ДВА сообщения о «загрузке» маски!
Итак, я удалил свой магазин.on 'Блок кода выше от моего контроллера init, и теперь у меня есть только одно сообщение.
Итак, откуда пришло другое сообщение?
Является ли оно частью Grid?:
Ext.define('ESDB.view.encounter.List', {
extend: 'Ext.grid.Panel',
...
Я нашел страницу , которая, кажется, задает тот же вопрос, хотя я не смог понять, как заставить его работать или как это делать в соответствии с ExtJS 4 /MVC.