停止对操作列执行双击操作

时间:2013-04-03 07:48:06

标签: extjs4 extjs4.1

我在extJS 4.1.1中有一个网格面板。在其他列中,我有一个动作列(xtype:'actioncolumn')。我在该列中包含一个处理程序。当我点击它,它工作正常,并打开一个新窗口加载很多东西。但是当我双击该列时出现错误。欢迎任何帮助.......

{
        text            : 'Signature',
        menuDisabled    : true,
        sortable        : false,
        id              : 'signature',
        xtype           : 'actioncolumn',            
        width           : 60,            
        items           : [{
            icon        : "${resource(dir: 'images', file: 'ADD01003.png')}",
            tooltip     : 'Add Signature',
            scope       : this,
            handler     : function(grid, rowIndex, colIndex) {
                var records = grid.getStore().getAt(rowIndex).data,
                  fullName    = records.fullName,
                  nickName    = records.nickName,
                  salutation  = grid.getStore().getAt(rowIndex).raw.m00i012001.name,
                  searchValue = records.id ;

                  var filters    = new Array();
                  var store =Ext.data.StoreManager.lookup('S02X004001');
                  store.clearFilter(); 
                  filters.push({property:'member', value:searchValue});
                  store.loadPage(1, {
                      filters  : filters,
                      callback : function(records, options, success) {
                      var view = Ext.widget('v02x004001');
                      view.show();
                      Ext.getCmp('fullName-sv02x00400104').setValue(fullName);
                      Ext.getCmp('nickName-sv02x00400104').setValue(nickName);                      
                      Ext.getCmp('member-sv02x00400104').setValue(searchValue);
                      Ext.getCmp('salutation-sv02x00400104').setValue(salutation);
                      }
                  });
            }
        }]
    }

1 个答案:

答案 0 :(得分:0)

不要复活任何僵尸,但对于在ExtJS 4,5或6中具有相同问题的任何人来说,这种解决方法应该可行(可能需要稍微修改类名,粘贴代码证明在5.1.1中有效)。 / p>

诀窍是不修改actioncolumn,而是修复itemdblclick事件处理程序,可能是这样的:

listeners:
{
    itemdblclick: function(v, record, item, index, e)
    {
        var flyTarget = Ext.fly(e.target);
        if(flyTarget.hasCls('x-action-col-icon') || flyTarget.hasCls('x-grid-cell-inner-action-col'))
        {
            e.stopEvent();
            return;
        }
        //your code here
    }
}