Button EXT js按钮菜单项禁用

Button EXT js按钮菜单项禁用,button,extjs,menu,hide,Button,Extjs,Menu,Hide,我有一个extjs按钮“Order”,按钮的菜单项为“orderInsuranceMenu”。我需要根据某些条件隐藏菜单项。我怎样才能做到呢 orderInsuranceMenu = { id: 'menu-order-insurance' ,items: [ { id:'btnMenu1', text: 'Test Buton1', iconCls: 'icon-cls',

我有一个extjs按钮“Order”,按钮的菜单项为“orderInsuranceMenu”。我需要根据某些条件隐藏菜单项。我怎样才能做到呢

orderInsuranceMenu = {
    id: 'menu-order-insurance'
    ,items: [
          { 
            id:'btnMenu1',
            text: 'Test Buton1',
            iconCls: 'icon-cls',
            listeners: {
                click: function(b,e){  
                   //some code goes here
                }
            }
        }
        ,{
            id:'btnMenu2',
            text: 'Test Buton2',
            iconCls: 'icon-first-title',
            listeners: {
                click: function(b,e){  
                    //Some code here
                }
            }
        }

    ]
};



Order = new Ext.Button({
    text: 'Order '
    , iconCls: 'icon-go'
    , disabled: true
    , menu: orderInsuranceMenu
    , handler: function() {
    }

});
我已尝试过此代码,但它不起作用:


Ext.getCmp('btnMenu2').hide()

您可以通过按钮的方法实现这一点。即:

Ext.getCmp('btnMenu2').setDisabled(true);
如果要将此应用于菜单中的所有项目,可以执行以下操作:

Ext.getCmp('menu-order-insurance').items.each(function(item) {
    if (item.isXType('button')) {
        item.setDisabled(true); // your condition here
    }
});

您可以通过按钮的方法实现这一点。即:

Ext.getCmp('btnMenu2').setDisabled(true);
如果要将此应用于菜单中的所有项目,可以执行以下操作:

Ext.getCmp('menu-order-insurance').items.each(function(item) {
    if (item.isXType('button')) {
        item.setDisabled(true); // your condition here
    }
});

您可以在菜单项中使用2.2中提供的
setVisible
方法


如果由于某种原因无法正常工作,我会从菜单中删除该项,然后在需要时将其重新添加到菜单中。

您可以在菜单项中使用2.2中提供的
setVisible
方法


如果由于某种原因无法使用,我会从菜单中删除该项,然后在需要时将其重新添加到菜单中。

Soloution:

在ExtJS2.2中,没有使用isVisible显示或隐藏菜单项的方法 因此,在大量挖掘和检查firebug之后,我发现的最终解决方案是隐藏或显示特定项目,如下所示

extManager.orderInsuranceMenu.items.items[1].hide();
orderInsuranceMenu.items.items[1].show();

Soloution:

在ExtJS2.2中,没有使用isVisible显示或隐藏菜单项的方法 因此,在大量挖掘和检查firebug之后,我发现的最终解决方案是隐藏或显示特定项目,如下所示

extManager.orderInsuranceMenu.items.items[1].hide();
orderInsuranceMenu.items.items[1].show();

我实际上想隐藏按钮。我试图通过使用上述代码进行破坏,即使它不起作用。我实际上是使用EXT 2.2来隐藏某些东西,您可以使用该按钮的方法。setVisible([bool])。但是,我不确定如何在上面的示例中创建菜单。什么是“extManager”?您在哪里运行逻辑来设置按钮可见?它是在您尝试访问它时创建的吗?@Jemsworld不认为在2.2和4.0之间对该代码有任何相关更改。extManager是我们项目中使用的名称空间。实际上,我在声明时删除了extmanager,但忘了在菜单中删除它。将其视为菜单:OrthRealEngCurnMeNuu。代码可以显示带有菜单项的按钮。但是我无法隐藏菜单项。正如您所说,setVisible/setDisable函数在extmanager 2.2中不可用。这是API链接。你能提供任何其他的解决方案来隐藏菜单项会很有帮助。我实际上想隐藏按钮。我试图通过使用上面的代码来破坏,即使它不起作用。我实际上是使用EXT 2.2来隐藏一些东西,你可以使用方法。setVisible([bool])来隐藏按钮。但是,我不确定如何在上面的示例中创建菜单。什么是“extManager”?您在哪里运行逻辑来设置按钮可见?它是在您尝试访问它时创建的吗?@Jemsworld不认为在2.2和4.0之间对该代码有任何相关更改。extManager是我们项目中使用的名称空间。实际上,我在声明时删除了extmanager,但忘了在菜单中删除它。将其视为菜单:OrthRealEngCurnMeNuu。代码可以显示带有菜单项的按钮。但是我无法隐藏菜单项。正如您所说,setVisible/setDisable函数在extmanager 2.2中不可用。这里是API链接,请您提供任何其他解决方案来隐藏菜单项将非常有帮助