Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.01.2011, 17:27
Tie Tie вне форума
Интересующийся
Отправить личное сообщение для Tie Посмотреть профиль Найти все сообщения от Tie
 
Регистрация: 15.12.2010
Сообщений: 11

Проблема с добавлением radiobutton в radiogroup
Здравствуйте.
Возникла необходимость сделать Radiogroup, в котором количество radiobutton'ов определяется после аякс-запроса (в представленном ниже коде пока стоит заглушка в виде переменной response_count). Решил написать для начала маленькую заготовку без аякса, но даже она не работает. Код:

var my_form = new Ext.FormPanel ({
    id: 'my_form',
    items: {
        id: 'my_fieldset',
        xtype: 'fieldset',
        items: {
            id: 'my_radiobutton_group',
            xtype: 'radiogroup',
            fieldLabel: 'Some text'
        }
    }
});

var response_count = 4;

for(var i = 1; i < response_count; i++){
    var my_radio = {
        xtype: 'radio',
        boxLabel: 'Radio ' + i,
        name: 'rb' + i,
        inputValue: i
    };

    Ext.getCmp('my_radiobutton_group').add(my_radio);
}


FireBug отвечает: "Ext.getCmp("my_radiobutton_group").add is not a function"
Проблема в том, что у компонента radiogroup нету метода add (проверял в документации). Без radiogroup обойтись нельзя, так как их должно быть тоже несколько. Возникает вопрос - как это лучше реализовать пограмотнее?
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2011, 18:07
VKS VKS вне форума
Профессор
Отправить личное сообщение для VKS Посмотреть профиль Найти все сообщения от VKS
 
Регистрация: 24.09.2010
Сообщений: 178

my_form.doLayout();
в конце добавь
Ответить с цитированием
  #3 (permalink)  
Старый 02.02.2011, 12:57
Tie Tie вне форума
Интересующийся
Отправить личное сообщение для Tie Посмотреть профиль Найти все сообщения от Tie
 
Регистрация: 15.12.2010
Сообщений: 11

Пробовал - бесполезно. Да и вообще не в этом дело. Выполнение кода встает на строке 24, и все. Что добавляй в конец doLayout, что не добавляй...

Вообще, уже переделал по-другому, не очень грамотно, но работает. Вкратце - генерю полностью RadioGroup с помощью php на стороне сервака при аякс-запросе. А на стороне пользователя только выполняю сгенерированный код.
Ответить с цитированием
  #4 (permalink)  
Старый 02.02.2011, 17:28
VKS VKS вне форума
Профессор
Отправить личное сообщение для VKS Посмотреть профиль Найти все сообщения от VKS
 
Регистрация: 24.09.2010
Сообщений: 178

Сообщение от Tie Посмотреть сообщение
Выполнение кода встает на строке 24, и все. Что добавляй в конец doLayout, что не добавляй...
Это означает что форма не проиницилизированна еще, и соответственно менеджер компонентов не может найти ваш radiogroup.

Выполняйте добавление после отображения формы.

my_form.on('render', function(){

var response_count = 4;

for(var i = 1; i < response_count; i++){
    var my_radio = {
        xtype: 'radio',
        boxLabel: 'Radio ' + i,
        name: 'rb' + i,
        inputValue: i
    };

    Ext.getCmp('my_radiobutton_group').add(my_radio);
}

my_form.doLayout();

}

Последний раз редактировалось VKS, 02.02.2011 в 17:34.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно передвать имя radiobutton в функции boris2000 Элементы интерфейса 2 03.08.2010 21:16
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47