Extjs-覆盖折叠函数

Extjs-覆盖折叠函数,extjs,overriding,expand,Extjs,Overriding,Expand,我是Extjs的新手;我有一个面板的项目“折叠:真的”,它的工作很好,但。。。 当我的特定条件为true时,我希望折叠面板,并禁用用于展开面板的按钮(因此,即使单击,面板也不再显示)。 有可能吗? 我需要一种重写方法,它可以执行其他操作,例如,在页面中显示一个没有多少特定信息的div。 我只使用javascript和Extjs 提前感谢,节日快乐请看我的片段。它能解决你的问题吗?如果你有任何问题,请告诉我。 })) 我添加了一个可绑定的版本 使用数据绑定到可折叠,您还可以将绑定添加到可折叠参

我是Extjs的新手;我有一个面板的项目“折叠:真的”,它的工作很好,但。。。 当我的特定条件为true时,我希望折叠面板,并禁用用于展开面板的按钮(因此,即使单击,面板也不再显示)。 有可能吗? 我需要一种重写方法,它可以执行其他操作,例如,在页面中显示一个没有多少特定信息的div。 我只使用javascript和Extjs


提前感谢,节日快乐

请看我的片段。它能解决你的问题吗?如果你有任何问题,请告诉我。


}))

我添加了一个可绑定的版本


使用数据绑定到
可折叠
,您还可以将绑定添加到
可折叠
参数

I添加了以下代码:Ext.getCmp('idPanel).collapse();当我的条件为真时,但现在我想禁用展开按钮并用另一个函数替换它。我已隐藏折叠/展开按钮,当代码执行此操作时,我已启用单击显示带有我的信息的窗口弹出窗口的div。我不知道为什么如果我禁用按钮而不使其不可见,按钮将保持启用状态感谢快速回答。为了设置容器的折叠/展开按钮不可见,有一种方法可以禁用它,并将此按钮与另一个函数绑定,不同于本机的折叠/展开?@sengy我更新了我的fiddle链接。我添加了一个类型为
up
的隐藏标题工具。当需要在某些情况下禁用可折叠行为时,我会隐藏collapseTool并显示
up
工具。这是解决您的问题的变通方法吗?我认为覆盖默认的展开/折叠行为有点复杂。
Ext.application({
name : 'Fiddle',

launch : function() {
    var parent = Ext.create('Ext.container.Container', {
        title : 'Demo',
        renderTo : Ext.getBody(),
        layout : 'vbox',
        items : [{
            xtype : 'checkbox',
            fieldLabel : 'Enable collapsible',
            handler : function(self, v){
                var panel = parent.down('panel');
                panel.collapseTool.setVisible(v);

                panel.getHeader().down('tool[type=up]').setVisible(!v);
            },
            checked : true
        }, {
            xtype : 'panel',
            width : 500,
            height : 400,
            title : 'Collapsible demo',
            collapsible : true,
            tools : [{
                type : 'up',
                hidden : true
            }]
        }]
    });
}