我有下面的代码如何获得电网onContextMenu功能
grid.on('contextmenu', this.onContextMenu, this);
onContextMenu: function (e) {
// I want the grid here
},
只有一个参数“E”。我不能使用'this',因为网格在面板内部,'this'返回面板而不是网格。我正在使用Extjs 2.3.0。
我有下面的代码如何获得电网onContextMenu功能
grid.on('contextmenu', this.onContextMenu, this);
onContextMenu: function (e) {
// I want the grid here
},
只有一个参数“E”。我不能使用'this',因为网格在面板内部,'this'返回面板而不是网格。我正在使用Extjs 2.3.0。
您可以将网格传递到您的处理自己:
grid.on('contextmenu', function(e) {
this.onContextMenu(e, grid);
}, this);
你的处理方法:
onContextMenu: function(e, grid) {
// have fun with your grid
}
我没有检查过,但在这种情况下,我也可以得到'e'。我也需要这个。 –
当然,你可以通过他们两个。我已经更新了我的答案来说明这一点。 – rixo
完美!!!!!!有效。标记为答案。谢谢。 –
嗯,你确定你想文本菜单,而不是像其他人rowcontextmenu或cellcontextmenu之一?尽管有contextmenu,但是,您有事件对象。您应该能够获取contextmenu事件的目标,并将其用作向上遍历dom以查找基础网格元素的起始位置。或者,你也可以给你的网格编号,只是使用Ext.getCmp(...) – existdissolve
是的,我只想contextmenu而不是rowcontextmenu和其他人...另外,我不能使用网格ID,因为我正在创建四个不同的网格使用相同的功能,并在该功能,我打电话给这个代码contxtmenu。 我在想'e'应该像rowcontextmenu(网格,索引,事件)那样有一个参数作为'网格'... –
好吧,然后另一个选项是要走的路。 – existdissolve