如何隐藏Ext.Panel的顶部工具栏? (ExtJS 2.0)

时间:2010-09-18 22:54:51

标签: extjs toolbar

由于某种原因,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 :(得分:0)

它应该可以工作,所以听起来好像你使用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);
    }

答案 1 :(得分:0)

panel.getTopToolbar().setVisible(false);

答案 2 :(得分:0)

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();