2013-07-23 2 views
0

У меня есть четыре кнопки в панели инструментов ExtJS этой кнопки коде выглядеть нижеКак скрыть кнопку ExtJS.Toolbar (внутри ButtonGroup) программно

MyToolbarUi = Ext.extend(Ext.Toolbar, { 
    buttonAlign: 'right', 
    width: 813, 
    height: 32, 
    id: 'toolbar', 
    initComponent: function() { 
     this.items = [ 
      { 
       xtype: 'buttongroup', 
       title: '', 
       columns: 2, 
       width: 250, 
       layout: 'column', 
       baseCls: ' ', 
       id: 'buttongroup', 
       items: [ 
        { 
         xtype: 'button', 
         text: ' B1', 
         width: 50, 
         ref: '../b1', 
         id: 'b1_id' 
        }, 
        { 
         xtype: 'button', 
         text: 'B2', 
         width: 50, 
         ref: '../b2', 
         id: 'b2_id' 
        }, 
        { 
         xtype: 'button', 
         text: 'B3', 
         width: 50, 
         ref: '../b3', 
         id: 'b3_id' 
        }, 
        { 
         xtype: 'button', 
         text: 'B4', 
         width: 50, 
         ref: '../b4', 
         id: 'b4_id' 
        } 
       ] 
      } 
     ]; 
     MyToolbarUi.superclass.initComponent.call(this); 
    } 
}); 

в вышеприведенном коде у меня есть 4 кнопки, которые вызывают b1, b2, b3 и b4 теперь я пытаюсь скрытый b4 программно сильфонных кодов

первая попытка обновить: this.b4.hidden = true;

второй TRY: var btn= Ext.getCmp('b4_id'); btn.setVisible(false);

в с обеих сторон спрятаны все 4 кнопки. как я могу скрыть только кнопку B4 программно? и, пожалуйста, объясните, что не так с моим выше скрытым двумя способами?

+0

Первый не имеет никакого эффекта, если настройки его на экземпляре, а второй человек должен работать, и это не имело бы никакого смысла, что все кнопки получить невидимые. У вас также была опечатка на первом id -> вы забыли закрытие «'» – sra

+0

попробуйте с btn = Ext.get (' b4_id '); btn.setVisible (ложь); – Hariharan

+0

@sra это прекрасно работает при удалении 'buttongroup', но я не могу удалить' buttongroup' – Duleep

ответ

0

Попробуйте с Ext.get, Когда я получил ту же проблему, я решить, заменив Ext.getCmp с Ext.get

Попробуйте

btn= Ext.get('b4_id'); 
btn.setVisible(false); 

or 

btn.hide(); 

, если вы хотите, чтобы скрыть первоначально, а затем использовать конфигурационный как показано ниже.

hidden: true 

Благодаря

+0

Я попытался, но это дало мне ошибку JS, так как 'btn is null' – Duleep

+0

У вас есть взгляд на теги? В ExtJS 3 нет компонента ComponentQuery и использование Ext.getCmp в ExtJS4 не рекомендуется. (Как и в ExtJS3, но часто не было другого способа) – sra

+0

Спасибо @sra, я этого не заметил. поэтому удаляем их. – Hariharan

Смежные вопросы