Extjs4,如何更新窗口bbar(工具栏)?

时间:2012-05-17 20:29:39

标签: extjs4

我想动态更新Extjs窗口bbar(工具栏),但我不知道应该如何使其工作,

示例代码:

var myWin = Ext.create('Ext.window.Window', {
    modal: true,
    layout: 'fit',
    items: {
    // panel
    },
    bbar: ['->', {
    xtype: 'buttongroup',
    items: [{
        text: 'Cancel',
        handler: function () {
        invoicingWin.destroy();
        }
    }]
    }, {
    xtype: 'buttongroup',
    items: [{
        text: 'Continue',
        handler: function () {

        var test = new Ext.Toolbar({
            dock: 'bottom',
            items: ['->', { html: "Close"}]
        });

        //  !! I want to replace this window bbar to test(toolbar)

        } // btn handler
    }]// items
    }]
}).show();

有人知道,请帮助我。

谢谢!

2 个答案:

答案 0 :(得分:2)

我认为这不是一个好的解决方案。但它会奏效。

var myWin = Ext.create('Ext.window.Window', {
    modal: true,
    layout: 'fit',
    width:400,
    height:400,
    items: {
    // panel
    },
    bbar: ['->', { 
    xtype: 'buttongroup',
    items: [{
        text: 'Cancel',
        handler: function () {
        invoicingWin.destroy();
        }
    }]
    }, {
    xtype: 'buttongroup',
    items: [{
        text: 'Continue',
        handler: function () {

        var test = new Ext.Toolbar({
            dock: 'bottom',
            items: ['->', { html: "Close"}]
        });
        myWin.removeDocked(myWin.down('toolbar'));
        myWin.addDocked(test);
        //  !! I want to replace this window bbar to test(toolbar)

        } // btn handler
    }]// items
    }]
}).show();

答案 1 :(得分:0)

IMO,ExtJS不期望更换面板的工具栏(以及面板的后代)。通常,工具栏将包含所需的项目列表,您只能隐藏/显示它们。

实际上,您仍然可以使用getDockedItems()getDockedComponent()addDocked()insertDocked()removeDocked()来满足您的需求。