Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJS边界布局:如何以编程方式折叠区域?_Javascript_Extjs - Fatal编程技术网

Javascript ExtJS边界布局:如何以编程方式折叠区域?

Javascript ExtJS边界布局:如何以编程方式折叠区域?,javascript,extjs,Javascript,Extjs,我有一个面板的“边界”布局,有“中心”和“北部”区域。 我想以编程方式将北部地区瓦解,根据论坛的说法,实现这一点的方法是: container.layout.north.collapse(); 但是,container.layout是一个字符串对象,因此container.layout.north为空对象 有没有人有一个2秒钟的指针,指示如何获得一个正确布局对象的句柄来调用collapse()。最便宜的方法是通过调用Ext.getCmp()来获得所需的面板。对于您来说,容器.layout未定义

我有一个面板的“边界”布局,有“中心”和“北部”区域。 我想以编程方式将北部地区瓦解,根据论坛的说法,实现这一点的方法是:

container.layout.north.collapse();
但是,container.layout是一个字符串对象,因此container.layout.north为空对象


有没有人有一个2秒钟的指针,指示如何获得一个正确布局对象的句柄来调用collapse()。

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

 var panel = Ext.getCmp('BorderPanelId');
 panel.layout.north.collapse();
另一种方法是使用北面板的Id。在这种情况下,您将:

 var panel = Ext.getCmp('NorthPanelId');
 panel.collapse();
另一种方法是使用
ref
系统。为面板设置ref属性。如果您有权访问组件的所有者。。您可以简单地使用ref来引用面板或其他组件。

在Extjs 4中,您可以执行以下操作:

panel.getLayout().regions.north.collapse();
container.down('[region=north]').collapse(); 
然后,要重新激活该区域:

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

使用Ext JS 4,您可以执行以下操作:

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

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

panel.layout不为空。它包含字符串类型的对象。这就好像布局对象尚未构建。我97.43%确信这与我试图折叠一个尚未显示的面板(位于“卡片”布局堆栈的底部)有关。