2011-06-13 100 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

如果由於某種原因不起作用,我會求助於從菜單中刪除項目,然後在需要時將其添加回菜單。