| 
 сервер и radiogroup При загрузке формы с сервера не могу проставить радиоточку. Форма загружена в tab panel. Собственно по примеру кода всё будет ясно: 
var chxs = {columnWidth: .25,
    layout: 'form',
    labelAlign: 'top',
    items: [
        {
        xtype: 'radiogroup',
        fieldLabel: 'Техническое обоснование формировать',
        items: [
            {
            boxLabel: 'приложение',
            name: 'p0442_c06',
            inputValue: 1
            },
            {
            boxLabel: 'оборотная сторона',
            id: 'gf',
            name: 'p0442_c06',
            inputValue: 0
            }
        ]
    }]
};
    panel2 = new Ext.FormPanel({
        frame: true,
        layout: 'form',
        title: "<span id=tehob >Техническое обоснование",
	autoWidth: document.body.clientWidth*0.9, height: document.body.clientHeight*0.9,
	id: 'tehobId',
/*----------------------------------------------------------------------------*/
    url: 'phps/mm160c06_load.php',
    reader: new Ext.data.JsonReader({
    	root: 'dan',
    	totalProperty: 'total',
	id: "id1"
	}, [
	'p0442_c06'
	]
    ),
    writer: new Ext.data.JsonWriter({
        encode: true,
        writeAllFields: true
    }),
    items: [
    {
        bodyStyle: {
            margin: '0px 0px 5px 0px'
        },
        hideBorders: true,
        items:[{
            hideBorders: true,
            layout: 'column',
            items: [chxs]
        }]
    }]
	listeners: { 
            'actioncomplete': { fn: function(form, action){
            var p044_chk=document.getElementsByName('p0442_c06');
            if (action.type=='load'){
                    if (action.result.data.p0442_c06==1){ // РЕЗУЛЬТАТ С СЕРВЕРА
                        var p044_chk=document.getElementsByName('p0442_c06'); // НЕ НАХОДИТ!! НО! - ЕСЛИ СДЕЛАТЬ SETTIMEOUT, ТО ВСЁ РАБОТАЕТ. ИЛИ ЕСЛИ СДЕЛАТЬ ВМЕСТО ACTIONCOMPLETE - AFTERLAYOUT, ВСЁ РАБОТАЕТ. ПРАВДА НЕ ВИДИТ ОТВЕТ С СЕРВЕРА.....(action.result.data.p0442_c06)
                                document.getElementsByName('p0442_c06')[0].checked=true;
                    }else{
                                document.getElementsByName('p0442_c06')[1].checked=true;
                    }
            }
            }, scope: this, single: true }
	}
    });
panel2.load({
    method: 'post', params: {c155: c155}
});
 | 
| 
 Очень хороший совет - не используйте нативные getElementsByName и прочее. http://docs.sencha.com/extjs/4.2.2/#...ComponentQuery Ну или под любую другую версию, отличий почти нет. Или методы down и up, например panel2.down('[name="p0442_c06"]'). Второй совет, который спасет вас от багов асинхронной загрузки и вообще сделает жизнь теплее и мягче - не используйте new. Вместо этого используйте Ext.create(). А вот метод который установит значение для ваших радиокнопок - http://docs.sencha.com/extjs/4.2.2/#...ethod-setValue Попробуйте использовать эти советы и напишите если не получится. | 
| 
 Спасибо за дельные советы! Наверное эта Сенча мне не поможет - виноват, не уточнил: мы используем 3 версию Экста. А в сравнении с четвёртой там есть различия. Цитата: 
 Ещё можно найти радиокнопку, используя в listeners событие afterlayout. Но тогда я не могу знать что пришло с сервера! То есть проверку if (action.result.data.p0442_c06==1) - сделать не удастся. Но кнопка проставится правда..... Как же быть? Второй день ничего путного не придумаю. | 
| 
 Создать новое поле в классе, записать туда пришедшие данные, на afterlayout прочитать их и действовать по необходимой логике. Что-то вроде this.lastAction = action.type , а потом в afterlayout if (this.lastAction == 'load'){ ... | 
| 
 Цитата: 
 | 
| 
 maksimka2112, Да да, именно там. | 
| 
 вы похоже store.load() вызываете до того как вызываете render.. а судя по логике вашего обработчика 'actioncomplete' на сторе должно быть наоборот | 
| 
 Цитата: 
 Цитата: 
 Так как у меня таб панель, то второй вкладке задую такие параметры: 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);
Как-то так. Может не совсем всё правильно. Но вроде работает. | 
| Часовой пояс GMT +3, время: 22:03. |