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

hyrbngr7  于 2022-09-26  发布在  其他
关注(0)|答案(3)|浏览(223)

出于某种原因,Ext.Panel。getTopToolbar()返回的是对象数组(工具栏的元素,但不是工具栏本身),而不是Ext.toolbar。因此,我无法隐藏已设置的工具栏。我应该如何继续?
示例代码:

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

oaxa6hgo1#

它应该可以工作,所以听起来好像您使用topToolbar作为配置而不是e1d1e用作配置?如果设置tbar配置,它将被示例化并保存为topToolbar,这是getTopToolbar()公开的Ext.Toolbar示例。如果直接覆盖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);
    }
mbyulnm0

mbyulnm02#

panel.getTopToolbar().setVisible(false);
nwnhqdif

nwnhqdif3#

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

相关问题