Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Отложенная загрузка данных в Store (https://javascript.ru/forum/extjs/27373-otlozhennaya-zagruzka-dannykh-v-store.html)

vadim.v 11.04.2012 12:40

Отложенная загрузка данных в Store
 
Продолжаю разбираться с ExtJS.

Есть приложение.


Добавил второй контроллер, который должен отвечать за функционал вакансий.
И теперь стали грузится все store, вместо store для первого контроллера.

Ext.application({
    name: 'Admin',
    controllers: ['Companies', 'Vacancies']
...
});


Как сделать чтобы остальные store грузились при реальном использовании ?

vadim.v 11.04.2012 13:11

Разобрался, нужно в сторе отключить автолоад,
и в грид при инициализации добавить загрузку вручную
Ext.data.StoreManager.lookup(this.getStore()).load ();

Только сейчас данные грузятся без прелоадера, что идет загрузка данных.
Как прелоадер вручную добавить ?

nekto_O 11.04.2012 13:23

Цитата:

Сообщение от vadim.v
Как прелоадер вручную добавить ?

если вы про LoadMask то либо у лоадера loadMask: true либо вручную создайте маску

vadim.v 11.04.2012 13:42

получилось, только как её показать только в таблице ?
как по умолчанию работает.

vadim.v 11.04.2012 13:56

В примерах делается вот так

listeners: {
            render: function(p){
                p.body.mask('Loading...');
            },
            delay: 50
        }


как бы это мне прикрутить

nekto_O 11.04.2012 14:12

ну по ссылке выше есть же пример, только вам нужно вмето Ext.getBody()
использовать grid.getEl().

vadim.v 11.04.2012 15:49

Спасибо, уже почти работает.
Осталось понять почему показывается не по центру.



this.on({
            render: function(grid)
            {
                grid.body.mask('Please wait...');
                //var mask = new Ext.LoadMask(grid.body, {msg:"Please wait..."});
                //mask.show();
                Ext.data.StoreManager.lookup(this.getStore()).load(function(){});
            }
        });


Часовой пояс GMT +3, время: 01:11.