2011-06-13 68 views
1

我有一个extjs按钮“订单”菜单项“orderInsuranceMenu”的按钮。我需要根据某些条件隐藏菜单项。我怎样才能achive它EXT js按钮菜单项禁用

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')隐藏();

回答

2

Soloution:

在ExtJS的2.2有使用ISVISIBLE 所以很多挖掘和萤火虫检查后的最终soloution我发现了隐藏或显示具体的没有方法来显示或隐藏菜单项项目如下所示

extManager.orderInsuranceMenu.items.items[1].hide(); 
orderInsuranceMenu.items.items[1].show(); 
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 
    } 
}); 
+0

我Actualay想隐藏button.I试图diable通过使用上述代码,即使然后它不工作。 – Jemsworld 2011-06-13 15:06:58

+0

我实际上使用EXT 2.2 – Jemsworld 2011-06-13 15:18:18

+0

要隐藏某些东西,您可以使用该按钮的方法.setVisible([bool])。不过,我不确定如何在上面的示例中创建菜单。什么是'extManager'?你在哪里运行逻辑来设置按钮可见?它是否在你尝试访问它的时刻被创建? – 2011-06-13 16:33:52

1

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

如果由于某种原因不起作用,我会求助于从菜单中删除项目,然后在需要时将其添加回菜单。