2016-12-07 55 views
2

我正在使用菜單爲我的網格中的行顯示多個選項。該菜單正確顯示文本,我希望能夠動態禁用其中一些選項。EXTJS 5 - 如何禁用菜單中的某些項目

這是我的菜單:

Ext.create('Ext.menu.Menu', { 
items: [{ 
    text: 'option 1' 
},{ 
    text: 'option 2' 
},{ 
    text: 'option 3' 
}] 
}); 

我試着給每個項目的ID和ID禁用它,但我在控制檯得到一個錯誤說

Uncaught TypeError: Cannot read property 'contains' of undefined(…) 

有誰知道解決這個問題?

回答

0
var menu=Ext.create('Ext.menu.Menu', { 
items: [{ 
    text: 'option 1' 
},{ 
    text: 'option 2' 
},{ 
    text: 'option 3' 
}] 
}); 
var item=menu.getComponent(//index of the item) 
item.setDisabled(true); 
+1

這個工作滿的例子。謝謝! –

1

您只需撥打menuitem上的方法disable即可。

var item = Ext.first('#mySpecialMenuItem'); 
item.disable(); 

事情是這樣的:

{ 
    xtype: 'menu', 
    floating: false, 
    id: 'myMenu', 
    width: 120, 
    items: [ 
     { 
      xtype: 'menuitem', 
      id: 'mySpecialMenuItem', 
      text: 'Menu Item' 
     }, 
     { 
      xtype: 'menuitem', 
      text: 'Menu Item' 
     }, 
     { 
      xtype: 'menuitem', 
      text: 'Menu Item' 
     } 
    ] 
}, 
{ 
    xtype: 'button', 
    handler: function(button, e) { 
     // somehow get the item 
     var item = Ext.first('#mySpecialMenuItem'); 
     // call disable 
     item.disable(); 

    }, 
    text: 'Disable Item' 
} 

入住這撥弄 https://fiddle.sencha.com/#view/editor&fiddle/1m2q

相關問題