2013-05-30 40 views
0

我有下面的代碼如何獲得電網onContextMenu功能

grid.on('contextmenu', this.onContextMenu, this); 

onContextMenu: function (e) { 
     // I want the grid here 
    }, 

只有一個參數「E」。我不能使用'this',因爲網格在面板內部,'this'返回面板而不是網格。我正在使用Extjs 2.3.0。

+0

嗯,你確定你想文本菜單,而不是像其他人rowcontextmenu或cellcontextmenu之一?儘管有contextmenu,但是,您有事件對象。您應該能夠獲取contextmenu事件的目標,並將其用作向上遍歷dom以查找基礎網格元素的起始位置。或者,你也可以給你的網格編號,只是使用Ext.getCmp(...) – existdissolve

+0

是的,我只想contextmenu而不是rowcontextmenu和其他人...另外,我不能使用網格ID,因爲我正在創建四個不同的網格使用相同的功能,並在該功能,我打電話給這個代碼contxtmenu。 我在想'e'應該像rowcontextmenu(網格,索引,事件)那樣有一個參數作爲'網格'... –

+0

好吧,然後另一個選項是要走的路。 – existdissolve

回答

0

您可以將網格傳遞到您的處理自己:

grid.on('contextmenu', function(e) { 
    this.onContextMenu(e, grid); 
}, this); 

你的處理方法:

onContextMenu: function(e, grid) { 
    // have fun with your grid 
} 
+0

我沒有檢查過,但在這種情況下,我也可以得到'e'。我也需要這個。 –

+0

當然,你可以通過他們兩個。我已經更新了我的答案來說明這一點。 – rixo

+0

完美!!!!!!有效。標記爲答案。謝謝。 –