2013-05-30 36 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

完美!!!!!!有效。标记为答案。谢谢。 –