Сообщение от siber-biber
|
вы похоже store.load() вызываете до того как вызываете render.. а судя по логике вашего обработчика 'actioncomplete' на сторе должно быть наоборот
|
а я как бы форму гружу, сторе персонально не идентифицирую...
Сообщение от Raydezm
|
Создать новое поле в классе, записать туда пришедшие данные, на afterlayout прочитать их и действовать по необходимой логике.
Что-то вроде
this.lastAction = action.type
, а потом в afterlayout
if (this.lastAction == 'load'){ ...
|
Большое спасибо! Ваш совет помог. Я вот как сделал:
Так как у меня таб панель, то второй вкладке задую такие параметры:
disabled: true,
id: 'tehobId',
Далее прописываю события для данной вкладки:
'actioncomplete': { fn: function(form, action){
var p044_chk=document.getElementsByName('p0442_c06');
if (action.type=='load'){
Ext.getCmp('tehobId').enable();
if (action.result.data.p0442_c06==1){
this.lastAction = 'goodLoad';
}else{
this.lastAction = 'badLoad';
}
}
}, scope: this, single: true },
'afterlayout': { fn: function(form, action){
if (this.lastAction == 'goodLoad'){
document.getElementsByName('p0442_c06')[0].checked=true;
}
if (this.lastAction == 'badLoad'){
document.getElementsByName('p0442_c06')[1].checked=true;
}
}, scope: this, single: true}
И напоследок на всякий случай (мало ли - ответ с сервера не придёт или ещё что) делаю активной вкладку:
setTimeout(function() {
Ext.getCmp('tehobId').enable();
},6500);
Как-то так. Может не совсем всё правильно. Но вроде работает.