2

通过单击显示菜单的按钮。一旦我们选择菜单需要在其他菜单中动态更改项目。我没有为这个视图的任何组件定义 id,因为如果我给组件提供 id,它会给出错误重复 id found。此视图在所有视图中都很常见,例如全局功能。在下面的代码中,两个项目: regionType 和 items: americaSubregionType 来自常量文件。第一次我需要将这些数据显示为区域和子区域中菜单的默认项。一旦我从区域中选择项目,我需要在子区域菜单中动态更改项目。所以我已经通过这种方式单击区域菜单,我已经为子区域项目分配了值:您可以在下面的代码中看到 americaSubregionType。但它没有反映。旧数据本身显示来自常量文件的子区域菜单项。谁能告诉如何动态更改项目?如何在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'
    }
]
4

1 回答 1

1

您可以设置itemId需要选择的菜单。

并且添加项目不应该有任何问题,add()或者insert()因为每个菜单都是一个容器(面板)。

于 2013-05-24T11:16:14.450 回答