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

Да, похоже, действительно, недоговариваю.
Попробовал Ваш код - работает. Попробовал сделать окно ещё одно с bbar'ом - тоже все работает. На всякий случай рабочий код:

var work_window= new Ext.Window ({
        id: 'work_window',
        minWidth: 500,
        minHeight: 500,
        bodyStyle: {
            padding: '5px',
            'background-color': '#FFFFFF'
        },
        title: 'Window',
        bbar: {
            items: [
                {
                xtype: 'buttongroup',
                id: 'buttongroup_in_bbar_id',
                items: [
                    {
                        text: '1',
                        id: 'q1',
                        handler: function () {

                        }
                    },
                    {
                        text: '2',
                        id: 'q2',
                        handler: function () {

                        }
                    },
                    {
                        text: '3',
                        id: 'q3',
                        handler: function () {

                        }
                    }
                ]
            }]
        }
    });

Ext.onReady(function() {
    work_window.show();

    var qqq = new Ext.util.MixedCollection;
    qqq = Ext.getCmp('buttongroup_in_bbar_id').items;
                
    console.log(qqq);
    console.log("first()=\"%s\"",qqq.first().toString());
});

В таком варианте действительно всё работает.

У меня суть в том, что количество кнопок в ButtonGroup генерируется через аякс-запрос. Код того, что сделано у меня на данный момент:

var work_window = new Ext.Window ({
    id: 'work_window',
    minWidth: 500,
    minHeight: 500,
    bodyStyle: {
        padding: '5px',
        'background-color': '#FFFFFF'
    },
    title: 'work_window',
    bbar: {
        id: 'b_bar',
        items: [{
            xtype: 'buttongroup',
            id: 'buttongroup_in_bbar_id'
        }]
    }
});

function get_bottom_bar(param) {
    Ext.Ajax.request({
       url: 'handler.php',
       params : {
           'param': param,
           'action' : '_get_count_buttons'
       },
       success: function(response) {
           count_buttons= Ext.util.JSON.decode(response.responseText);
           create_bottom_bar(count_buttons);
           Ext.getCmp('b_bar').doLayout();
       }
    });
}

function create_bottom_bar (count_buttons) {
    for (var i = 1; i <= count_buttons; i++) {
        var new_button = {
            text: i,
            id: 'button'+i,
            handler:function(){
                //заглушка
                }
            }

        Ext.getCmp('buttongroup_in_bbar_id').add(new_button);
    }
}

Ext.onReady(function() {
    work_window.show();
    get_bottom_bar(999);

    var qqq = new Ext.util.MixedCollection;
    qqq = Ext.getCmp('buttongroup_in_bbar_id').items;

    console.log(qqq);
    console.log("first()=\"%s\"",qqq.first().toString());
});


handler.php на данный момент возвращает просто значение '15', без всяких обработок. Соответственно генерится 15 кнопочек с соотвествующими text и id.
И вот в таком варианте
console.log(qqq);
вполне себе работает, а вот на
console.log("first()=\"%s\"",qqq.first().toString());
Firebug отвечает, что qqq.first() is undefined.

Последний раз редактировалось Tie, 23.12.2010 в 12:57.
Ответить с цитированием