EXT js按钮菜单项禁用

时间:2011-06-13 11:40:10

标签: button extjs menu hide

我有一个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')隐藏();

3 个答案:

答案 0 :(得分:3)

您可以使用按钮的方法setDisabled来实现此目的。即:

Ext.getCmp('btnMenu2').setDisabled(true);

如果您想对菜单中的所有项目应用此功能,您可以执行以下操作:

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

答案 1 :(得分:2)

<强> Soloution:

在Extjs 2.2中,没有方法可以使用isVisible来显示或隐藏菜单项 因此,经过大量挖掘和检查萤火虫后,我发现的最终解决方案是隐藏或显示具体项目,如下所示

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

答案 2 :(得分:1)

您可以在菜单项中使用2.2中提供的setVisible方法。 http://i.stack.imgur.com/kdw7f.png

如果出于某些原因无效,我会从菜单中删除该项目,然后在需要时将其添加回菜单。