Javascript 在打开onClick的网格内创建菜单

Javascript 在打开onClick的网格内创建菜单,javascript,extjs,extjs3,Javascript,Extjs,Extjs3,我花了3个小时试图在网格中创建菜单(请参见img:)。但就我个人而言,我无法让处理程序在菜单中工作 编辑(澄清):我希望在网格内的每个记录行上有更多的空间放置动作图标。因此,为了创建额外的空间,我希望在每个网格行(见图)内都有一个菜单onClick,这将允许我在下拉菜单中添加无限的操作图标 我创建了这样的菜单(我认为这是不对的,但我不知道怎么做): 我正在尝试调用RGridPanel中的处理程序: showSelectDialog: function(grid, rowIndex, colInd

我花了3个小时试图在网格中创建菜单(请参见img:)。但就我个人而言,我无法让
处理程序在菜单中工作

编辑(澄清):我希望在网格内的每个记录行上有更多的空间放置动作图标。因此,为了创建额外的空间,我希望在每个网格行(见图)内都有一个菜单
onClick
,这将允许我在下拉菜单中添加无限的操作图标

我创建了这样的菜单(我认为这是不对的,但我不知道怎么做):

我正在尝试调用
RGridPanel
中的处理程序:

showSelectDialog: function(grid, rowIndex, colIndex) {}
loadMenu: function(){ 
    return new Ext.menu.Menu({
        scope:this,
        id: 'mainMenu',
        style: {
            overflow: 'visible'     // For the Combo popup
        },
        items: [
            {
                iconCls: 'sitemap_16',
                text: 'Test 2',
                handler:this.showSelectImportFileDialog, //this works, but it does not pass the required params
我想使用
RGridPanel
中的nice方法,因此不需要传递参数。有人能给我指出正确的方向来解决这个问题吗

编辑::: 在
GridPanel
中使用此选项,我自己已经走得更远了:

showSelectDialog: function(grid, rowIndex, colIndex) {}
loadMenu: function(){ 
    return new Ext.menu.Menu({
        scope:this,
        id: 'mainMenu',
        style: {
            overflow: 'visible'     // For the Combo popup
        },
        items: [
            {
                iconCls: 'sitemap_16',
                text: 'Test 2',
                handler:this.showSelectImportFileDialog, //this works, but it does not pass the required params

cog
图标上:

  handler: function (view, record, el, i, e) {
      view.newMenu.showAt(e.getXY());
  },

我现在可以调用
showSelectDialog
,但是默认参数(
(网格、行索引、colIndex)
不起作用。因为我从菜单内部调用
showSelectDialog

当显示菜单时,您可以提供如下信息:

handler: function(grid, rowIndex, colIndex, item, e) {
    grid.newMenu.cfg = {
        grid: grid,
        rowIndex: rowIndex,
        colIndex: colIndex,
        whatever: null
    };
    grid.newMenu.showAt(e.getXY());
}
然后在菜单处理程序中使用它:

handler: function(){
    var menu = this.ownerCt;
    var cfg = menu.cfg;

    console.log(cfg);
}

工作示例:

您到底想实现什么?根据您的图像,您似乎希望在单击按钮时显示此菜单。请提供更多详细信息。网格面板只是一个网格。在其中添加菜单并不常见,可能您希望制作一些面板,然后在其中插入网格和菜单。请提供更多详细信息关于您所追求的目标的详细信息。或者您想对菜单按钮单击或?添加更多信息,有帮助吗?如果您在项目中添加一个侦听器而不是处理程序,会怎么样?侦听器:{click:function(){console.log(this);console.log(this.ownerCt);}这行吗?这只是给我菜单里的项目