Ext JS Border布局:如何以编程方式折叠区域?

时间:2011-05-11 06:59:42

标签: javascript extjs

我有一个带有“边框”布局的面板,有“中心”和“北”区域。 我想以编程方式崩溃北部地区,根据论坛,这样做的方法是:

container.layout.north.collapse();

但是,container.layout是一个字符串对象,因此container.layout.north给了我null对象。

是否有人有2秒指针指示如何获取正确布局对象的句柄以调用collapse()?

3 个答案:

答案 0 :(得分:1)

最便宜的方法是通过拨打Ext.getCmp()来获取所需的面板。对于你来说container.layout是未定义的,因为它不是Ext.Component的对象。为您的边框面板或您需要访问的任何面板设置Id。

 var panel = Ext.getCmp('BorderPanelId');
 panel.layout.north.collapse();

另一种方法是使用北面板的Id。在这种情况下,您将:

 var panel = Ext.getCmp('NorthPanelId');
 panel.collapse();

另一种方法是成为ref系统的用户。设置面板的ref属性。如果您可以访问组件的所有者..您可以简单地使用引用参考面板或其他组件。

答案 1 :(得分:1)

在Extjs 4中你可以这样做:

panel.getLayout().regions.north.collapse();

然后重新激活该区域:

panel.getLayout().regions.north.expand();

答案 2 :(得分:1)

使用Ext JS 4,您可以:

container.down('[region=north]').collapse(); 

这是最简单和推荐的方式。