我有一个Ext.Panel类型的mediaGrid。该面板包含一个tbar
,其中包含一个带复选框的菜单的按钮组项。我需要能够访问从mediaGrid声明外部检查哪些框,但我不知道如何做到这一点。这是mediaGrid声明:
var mediaGrid = new Ext.Panel({
id: 'mediaviewer',
region: 'center',
border: false,
items: mediaDataView,
style: 'border-left: 1px solid #d0d0d0',
tbar: [
{
xtype: 'buttongroup',
title: 'Filters',
items: [
{
text: 'Show',
icon: '/img/picture.png',
iconAlign: 'top',
menu: {
xtype: 'menu',
defaults: {
hideOnClick: false,
listeners: {
checkchange: function (checkitem) {
var menu = checkitem.ownerCt;
var values = [];
if (menu.pictureCheck.checked) {
values.push('picture');
}
if (menu.videoCheck.checked) {
values.push('video');
}
if (menu.noteCheck.checked) {
values.push('note');
}
if (values.length == 0) {
values.push('none');
}
mediaStore.reload({ params: { type: values.toString()} });
}
}
},
items: [
{
text: 'Pictures',
checked: true,
ref: 'pictureCheck'
},
{
text: 'Videos',
checked: true,
ref: 'videoCheck'
},
{
text: 'Notes',
checked: true,
ref: 'noteCheck'
}
]
}
}
]
},
'->',
{
xtype: 'searchfield',
store: mediaStore,
emptyText: 'Search',
enableKeyEvents: true,
listeners: {
keyup: {
fn: function (thisField, e) {
if (!e.isNavKeyPress() && thisField.isValid()) {
thisField.onTrigger2Click();
}
},
buffer: 500
}
}
},
' ',
' '
]
});
我在另一个面板上有一个按钮,当单击该按钮时,会打开一个Ext.Window以将新节点添加到媒体GridPanel。当用户单击“保存”时,它应该将注释添加到GridPanel,但它也应该检查菜单以查看用于显示注释的过滤器是否打开。这就是我需要访问菜单的原因。有谁知道如何在mediaGrid中访问该菜单?
答案 0 :(得分:2)
您始终可以在面板外创建对象,然后将它们包含在面板中。这样你就可以在任何你喜欢的地方引用它们。
例如:
var menu = new Ext.menu.Menu({
//your menu configuration
});
var tbar = new Ext.Toolbar({
//your toolbar configuration
//...
items: [menu] //and so on
});
var mediaGrid = new Ext.Panel({
//your mediagrid configuration
tbar: tbar
});
答案 1 :(得分:-1)
您也可以提供tbar和ID ...然后您可以尝试使用Ext.getCmp();