0

我想动态更新 Extjs 窗口 bbar(toolbar),但我不知道我应该如何让它工作,

示例代码:

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();

有谁知道,请帮帮我。

谢谢!

4

2 回答 2

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();
于 2012-05-18T04:13:33.287 回答
0

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

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

于 2012-05-18T03:59:11.980 回答