2013-07-20 57 views
1

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

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: falseforceLayout: true,也尝试了hideMode: 'offsets',但这些并没有帮助。

回答

0

好吧,我将hideMode: 'offsets'添加到TabPaneldefaults,它工作正常。几年前我也做了同样的事情,但没有得到明显的结果。

0

删除renderTo: 'form',并期待在工作代码here

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] 
    }] 
}); 
+0

它给了我一个:遗漏的类型错误:无法未定义EXT-all.js的读取属性 '事件':7 Ext.Container.Ext。 extend.lookupComponent ext-all.js:7 Ext.Container.Ext.extend.add ext-all.js:7 (匿名函数)ext-all.js:7 Ext.apply.each ext-base.js :7 Ext.Container.Ext.extend.add ext-all.js:7 Ext.Container.Ext.extend.initComponent ext-all.js:7 Ext.Panel.Ext.exten d.initComponent ext-all.js:7 Ext.Component – user1721713

+0

您是否添加了'items:[form]'和comment' // contentEl:'tab2','?正如您在jsfiddle示例中看到的,代码正在运行。如果你把所有的代码放在jsfiddle中,我可以看看它。 –

+0

是的,我做到了。因为我通过将hideMode:'offset'添加到默认值来解决了这个问题。谢谢你的建议! – user1721713