2

メニューを表示しているボタンをクリックする。メニューを選択したら、他のメニューで項目を動的に変更する必要があります。このビューのどのコンポーネントにも id を定義していません。コンポーネントに id を指定すると、重複した id が見つかりましたというエラーが発生するためです。このビューは、グローバル機能などのすべてのビューで共通です。以下のコードでは、items: regionType と items: americaSubregionType の両方が定数ファイルから取得されます。初めて、リージョンとサブリージョンのメニューのデフォルト項目としてこれらのデータを表示する必要があります。Region からアイテムを選択したら、SubRegion メニューでアイテムを動的に変更する必要があります。だから私はこの方法で地域メニューをクリックして、サブ地域項目に値を割り当てました: 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 に答える