Как скрыть верхнюю панель инструментов Ext.Panel?(ExtJS 2.0) - PullRequest
0 голосов
/ 19 сентября 2010

По какой-то причине Ext.Panel.getTopToolbar () возвращает массив объектов (элементов панели инструментов, но NOT самой панели инструментов), а не Ext.Toolbar. Из-за этого мне не удается скрыть уже установленную панель инструментов. Как мне поступить?

Пример кода:

function (panel)
{
    alert(panel.getTopToolbar()); // displays the list of elements in the toolbar
    panel.getTopToolbar().hide(); // error: "hide" is not a function
}

Ответы [ 3 ]

0 голосов
/ 26 сентября 2011
panel.getTopToolbar().setVisible(false);
0 голосов
/ 09 апреля 2014

В 4.2.1 у меня работает:

          var topToolbar = Ext.create('Ext.toolbar.Toolbar', {
              dock: 'top',
              width: 'auto',
              id: 'mytoolbar',
              hidden: true,
              items: [...]
          });


            var p = Ext.create('App.view.MyCustomPanel', {
                html: 'test',
            });

            if (userCanSeeToolbar) {
              p.addDocked(topToolbar);
            }

Затем динамически я могу показать / скрыть верхнюю панель инструментов:

 /* if (userCanSeeToolbar) { */
 p.getDockedComponent('mytoolbar').show();
 p.getDockedComponent('mytoolbar').hide();
0 голосов
/ 19 сентября 2010

Должно работать, так что, может быть, вы использовали topToolbar в качестве конфигурации вместо использования tbar в качестве конфигурации? Если вы установите конфигурацию tbar, она будет создана и сохранена как topToolbar, то есть экземпляр Ext.Toolbar, предоставляемый getTopToolbar(). Если вы переписали topToolbar напрямую, вы можете увидеть эту проблему.

Вы можете найти этот блок кода в Panel.onRender (вам придется включить этот файл напрямую) и установить точку останова в Firebug, чтобы увидеть, что происходит:

    if(this.tbar && this.topToolbar){
        if(this.topToolbar instanceof Array){
            this.topToolbar = new Ext.Toolbar(this.topToolbar);
        }
        this.topToolbar.render(this.tbar);
    }
...