我有一个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();
您可以使用按钮的方法setDisabled来实现这一点。I.e:
Ext.getCmp('btnMenu2').setDisabled(true);
如果你想将其应用于菜单中的所有项目,你可以这样做:
Ext.getCmp('menu-order-insurance').items.each(function(item) {
if (item.isXType('button')) {
item.setDisabled(true); // your condition here
}
});
解决方案:
在Extjs 2.2中,没有使用isVisible显示或隐藏菜单项的方法因此,经过大量的挖掘和检查,我发现最后的解决方案是隐藏或显示特定的物品,如下所示
extManager.orderInsuranceMenu.items.items[1].hide();
orderInsuranceMenu.items.items[1].show();
您可以在菜单项中使用2.2中提供的setVisible
方法。https://i.stack.imgur.com/kdw7f.png
如果出于某种原因,这不起作用,我会将该项目从菜单中删除,然后在需要时将其重新添加到菜单中。