私のextjsグリッド内で、右クリックするとコンテキストメニューが呼び出されます。アイテムの1つをクリックすると、コントローラでメソッドを起動します。これはすべて正常に動作します。問題は、これが呼び出されている親グリッドをコントローラメソッドに渡したいのです。誰かが私にこれを行う方法を教えてもらえますか?extjs contextmenuコントローラメソッドへのパラメータとして親グリッドを渡す
は、これは私のコンテキストメニュー
Ext.define('Example.ContextMenuTradematch', {
xtype: 'contextMenuTradematch',
extend: 'Ext.menu.Menu',
items: [
{
text: 'Match Trade',
iconCls: 'greenIcon',
listeners: {
click: {
fn: 'onMatchTrade',
params: {
param1: this
}
}
}
},
{
text: 'Delete Trade',
iconCls: 'deleteIcon',
listeners: {
click: 'onDeleteTrade'
}
}
]
です
});
、これは私がイベントの発信元のグリッドにアクセスすることができますどのように私のコントローラメソッド
onMatchTrade: function (event, target, options) {
debugger;
var me = this;
のですか?
- そしてこれは、これを行う最も簡単な方法です...私は、グリッドに
title: 'Tradematch Results: UNMATCHED',
xtype: 'grid',
itemId: 'gridUnmatchedId',
ui: 'featuredpanel-framed',
cls: 'custom-grid',
margin: '0px 10px 0px 10px',
flex: 2,
width: '100%',
bind: {
store: '{myTM_ResultsStore}'
},
listeners: {
itemcontextmenu: 'showContextMenuTradematch'
},
をコンテキストメニューを追加し、このコントローラは、それを追加する方法をどのように
getContextMenu: function (cMenu) {
if (!this.contextMenu) {
debugger;
this.contextMenu = this.getView().add({ xtype: cMenu });
}
return this.contextMenu;
},
showContextMenuTradematch: function (view, rec, node, index, e) {
e.stopEvent();
e.stopEvent();
debugger;
this.getContextMenu('contextMenuTradematch1').show().setPagePosition(e.getXY());
return false;
},
どのようにグリッドがコントローラに作成するのでしょうか?コンテキスト情報が不十分です。 –