1

在 ExtJs 3.4 中,我有一个带有两个选项卡的 TabPanel,第二个选项卡包含一个 FormPanel,其中包含一个 ButtonGroup。如果第二个选项卡处于活动状态,当我加载页面时,一切都很好,但是当第一个选项卡处于活动状态并且我切换到第二个时,按钮组中没有按钮,只有标签。这是代码:

var tabs = new Ext.TabPanel({
    renderTo: 'tabs',
    width:500,
    forceLayout: true,
    activeTab: 0,
    deferredRender: false,
    defaults:{autoHeight: true},
    items:[
        {contentEl:'tab1', title: 'Tab1'},
        {contentEl:'tab2', title: 'Tab2'}
    ]
});

var form = new Ext.form.FormPanel({
    width   : 400,
    autoHeight: true,
    renderTo: 'form',
    bodyStyle: 'padding: 5px',
    items: [
        {
            xtype: 'buttongroup',
            fieldLabel: 'Label',
            items: 
            [
                {
                    xtype: 'button',
                    text: 'Find By User',
                    width: 100,
                    scope: this,
                    handler: this.handleFind
                },
                {
                    xtype: 'button',
                    text: 'Find All',
                    width: 100,
                    scope: this,
                    handler: this.handleFindAll
                }
            ]
        }
    ]
});

我设置了deferredRender: falseand forceLayout: true,也尝试了hideMode: 'offsets',但是这些都没有帮助。

4

2 回答 2

0

好吧,我将其添加hideMode: 'offsets'defaultsof 中TabPanel,它工作正常。几年前我也做过同样的事情,但没有取得显著成果。

于 2013-07-20T14:25:34.263 回答
0

删除renderTo: 'form'并查看此处的工作代码:

var form = new Ext.form.FormPanel({
    width: 400,
    autoHeight: true,
    //renderTo: 'form',
    bodyStyle: 'padding: 5px',
    items: [{
        xtype: 'buttongroup',
        fieldLabel: 'Label',
        items: [{
            xtype: 'button',
            text: 'Find By User',
            width: 100,
            scope: this,
            handler: this.handleFind
        }, {
            xtype: 'button',
            text: 'Find All',
            width: 100,
            scope: this,
            handler: this.handleFindAll
        }]
    }]
});

var tabs = new Ext.TabPanel({
    renderTo: 'tabs',
    width: 500,
    forceLayout: true,
    activeTab: 0,
    //deferredRender: false,
    height: 300,
    defaults: {
        autoHeight: true
    },
    items: [{
        contentEl: 'tab1',
        title: 'Tab1'
    }, {
        //contentEl: 'tab2',
        title: 'Tab2',
        items: [form]
    }]
});
于 2013-07-20T14:31:09.973 回答