メニューを表示しているボタンをクリックする。メニューを選択したら、他のメニューで項目を動的に変更する必要があります。このビューのどのコンポーネントにも 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'
}
]