当我将使用extjs 6最大化我的图形面板时,如何隐藏选择面板

时间:2016-07-19 09:44:32

标签: extjs

当我最大化我的图形面板时,如何隐藏选择面板。我的选择面板位于西区,北面的控制面板和GraphPanel位于中心。我是extjs的新手,请回答这个问题来帮助我。

    .on("click", function() {
       var el = d3.select(this),
           cPanel = pnl.up('mgoPanel').down('mgoControlPanel'), // control Panel
           sPanel = Ext.ComponentQuery.query('panel[name=selectpanel]');
       /selection 

       if (el.attr('state') == 'min') {
           if (cPanel) {
               cPanel.setHidden(true);
           }
           if (sPanel) {
               sPanel.setHidden(true);
           }
           el.attr('src', 'resources/images/minimize.png');
           el.attr('state', 'max');
       } else {
           if (cPanel) {
               cPanel.setHidden(false);
           }
           if (sPanel) {
               sPanel.setHidden(false);
           }
           el.attr('src', 'resources/images/maximize.png');
           el.attr('state', 'min');
       }
       mgoPanel.fireEvent('onchartresize', el.attr('state'), mgoPanel);
     });

sPanel的setHidden(true);也无效。

1 个答案:

答案 0 :(得分:1)

请打开浏览器控制台,找到以下错误消息:

  

未捕获的TypeError:sPanel.setHidden不是函数

原因是

Ext.ComponentQuery.query

未返回组件。如果您检查文档或在浏览器控制台中尝试,则会看到它returns an array。数组没有函数setHidden,只有一个组件。

因此,解决方案是从查询结果中获取第一项:

sPanel = Ext.ComponentQuery.query('panel[name=selectpanel]')[0];