EXT JS Кнопка меню пункт отключить - PullRequest
1 голос
/ 13 июня 2011

У меня есть кнопка extjs «Заказать» с пунктами меню «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 ();

Ответы [ 3 ]

3 голосов
/ 13 июня 2011

Этого можно добиться с помощью метода 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
    }
});
2 голосов
/ 16 июня 2011

Soloution:

В Extjs 2.2 нет способа показать или скрыть пункт меню с помощью isVisible. Поэтому после большого количества копаний и проверки в firebug последнее найденное мной решение было скрытьили показать конкретный элемент, как показано ниже

extManager.orderInsuranceMenu.items.items[1].hide();
orderInsuranceMenu.items.items[1].show();
1 голос
/ 14 июня 2011

Вы можете использовать метод setVisible, доступный в 2.2, в пунктах меню. http://i.stack.imgur.com/kdw7f.png

Если по какой-либо причине это не работает, я бы прибегнул к удалению элемента из меню, а затем добавил его обратно в меню, когда это необходимо.

...