点击显示菜单的按钮。 一旦我们选择菜单需要在其他菜单中动态更改项目。我没有为此视图的任何组件定义ID,因为如果我将id提供给组件,它将会给出错误重复ID找到。 此视图在所有视图中都很常见,如全局功能。在下面的代码中,两个项目:regionType和items:来自常量文件的americaSubregionType。我第一次需要将这些数据显示为区域和子区域中的菜单的默认项目。一旦我从Region选择项目,我需要在SubRegion菜单中动态更改项目。 所以我已经这样点击区域菜单我已经为子区域项目分配了值:您可以在下面的代码中看到的USASubregionType。但它没有反映出来。旧数据本身显示来自常量文件的子区域菜单项。任何人都可以告诉如何动态更改项目吗?如何在extjs中实现这一点?非常感谢。谢谢。
这是我的代码
{
xtype: 'button',
action: 'btnFilter',
cls: 'filterCls',
plain: true,
menu: {
items: [{
text: 'Region',
cls: 'filterMenuCls',
menu: {
plain: true,
cls: 'filterMenuCls',
listeners: {
click: function (menuitem, e, opt) {
var grid = Ext.getCmp('GridViewId');
grid.store.clearFilter();
grid.store.filter([{
property: "region",
value: e.text,
anyMatch: false,
exactMatch: true
}])
//This one i will retrieve from grid store and assign to americaSubregionType here will changesubregion value but it is not reflecting in visible view
americaSubregionType = [
'<b class="menuTitleCls">Choose a Vessel Type</b>', {
text: 'ABC',
cls: 'filterMenuCls'
}, {
text: 'Hello',
cls: 'filterMenuCls'
}]
}
},
items: regionType
}
}, {
text: 'SubRegion',
cls: 'filterMenuCls',
menu: {
plain: true,
cls: 'filterMenuCls',
action: 'Subbb',
listeners: {
click: function (menuitem, e, opt) {
}
},
items: americaSubregionType
}
}
}
}
}
常量文件数据
regionType = [
'<b class="menuTitleCls">Choose a Vessel Type</b>',
{
text: 'AMERICAS',
cls: 'filterMenuCls'
},
{
text: 'NORTH SEA',
cls: 'filterMenuCls'
},
{
text: 'SEA',
cls: 'filterMenuCls'
}
]
americaSubregionType = [
'<b class="menuTitleCls">Choose a Vessel Type</b>',
{
text: 'Brazil',
cls: 'filterMenuCls'
},
{
text: 'Mexico',
cls: 'filterMenuCls'
},
{
text: 'US',
cls: 'filterMenuCls'
}
]
答案 0 :(得分:1)
您可以设置菜单的itemId
,您需要选择它。
由于每个菜单都是容器(面板),因此add()
或insert()
添加项目应该不会有任何问题。