当我最大化我的图形面板时,如何隐藏选择面板。我的选择面板位于西区,北面的控制面板和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);
也无效。
答案 0 :(得分:1)
请打开浏览器控制台,找到以下错误消息:
未捕获的TypeError:sPanel.setHidden不是函数
原因是
Ext.ComponentQuery.query
未返回组件。如果您检查文档或在浏览器控制台中尝试,则会看到它returns an array。数组没有函数setHidden
,只有一个组件。
因此,解决方案是从查询结果中获取第一项:
sPanel = Ext.ComponentQuery.query('panel[name=selectpanel]')[0];