Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Ext.FormPanel.load() && ComboBox (https://javascript.ru/forum/extjs/10086-ext-formpanel-load-combobox.html)

Ex_Soft 18.06.2010 18:36

Ext.FormPanel.load() && ComboBox
 
Ext.FormPanel.load() чудесно работатет с textfield/datefield/radio/checkbox. А как загружать ComboBox'ы? For example: у меня 4 ComboBox'а (2-ва с mode: "local" + Store с autoLoad: true; 2-ва с mode "remote"). Я передаю с сервера ID'шки ComboBox'в. Ну и как мне теперь все это свести до кучи?

Kolyaj 18.06.2010 18:42

И в чём проблема?

Ex_Soft 18.06.2010 19:08

Цитата:

Сообщение от Kolyaj (Сообщение 60058)
И в чём проблема?

Проблема, как я ее вижу, в том, что мне необходимо дождаться:
1. Окончания загрузки Store #1 с autoLoad: true;
2. Окончания загрузки Store #1 с autoLoad: true;
3. Окончания загрузки Form'ы
И только потом, когда эти три ансинхронные события выполнятся, установить для 2-х ComboBox'ов с mode: "local" значения, полученные с сервера. А как поступать с ComboBox'ами с mode: "remote" - даже пока не устаканилось. Давайте пойдем от простого к сложному: в начале сведем до купы три выше перечисленных асинхронных события.

EugeneAbl 03.12.2010 07:30

У меня такая же проблема.
Как Вы ее решили ?

cmygeHm 03.12.2010 09:11

Напиши ему в личку или на мыло, он может на форуме последний раз тогда был.

underW 03.12.2010 10:09

дождаться загрузки нескольких Store. Это надо сделать или что?

Если это, то я бы сделал так: опишу алгоритм:

обьявляем переменную i=0; После успешной загрузки Store выполняем функцию i++, проверяем значение переменной i - если оно равно количеству всех Store - значит они все загрузились. Все ок, мы дождались, делаем то что запланировали.

underW 03.12.2010 10:17

Цитата:

Сообщение от cmygeHm (Сообщение 82093)
Напиши ему в личку или на мыло, он может на форуме последний раз тогда был.

Ex_Soft Последняя активность: 01.12.2010 00:58

EugeneAbl 03.12.2010 10:31

Проблема была в том, что на форме есть combobox, значения которого грузятся с сервера. После загрузки необходимо, чтобы выбранное значение в списке было установлено в соответствии с данными, которые тоже выдаются сервером в форму. Так как сама форма грузится асинхронно и combobox тоже грузится асинхронно, то приходится синхронизировать эти две загрузки так, чтобы после загрузки формы дождаться загрузки списка уже потом выбрать в нем требуемое значение.
Пока сделал так, что жду загрузку формы, затем делаю load на combobox и затем выбираю в нем требуемый элемент.
Но как-то мне это не очень нравится. Вот если бы был механизм в combobox, при котором в случае загрузки с сервера, сразу можно было указать какой элемент в списке должен быть установлен после загрузки. Это бы было более логично. Но ничего похожего не нашел.

cmygeHm 03.12.2010 11:32

Два варианта:
1. делай загрузку комбобокса и в случае успешной загрузки делай загрузку формы:
combo.store.load({params:{id: id}, url: '/asdfasdfsf/asdf/sfsaf/', success: function(){
form.getForm().load();
}});

2. Делай загрузку сторе. В комбо сделай листенер onload:
combo.store.on('load', function(){
        form.getForm().load();
    });

Я бы так пошел.

VKS 03.12.2010 11:45

вариант 3й - использовать расширение saki
http://examples.extjs.eu/popcombo.html


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