使用Ext.define()扩展网格面板时如何添加行双击事件侦听器?

Pet*_*nov 18 javascript extjs gridpanel extjs4

我正在使用Ext.define()(Ext v4)扩展GridPanel.

双击网格行时,我需要获取行数据.此时我甚至无法让事件监听器工作:

Ext.define('Application.usersGrid', {
extend: 'Ext.grid.GridPanel',
alias: 'widget.usersgrid',


viewConfig: {
    listeners: {
        dblclick: function(dataview, index, item, e) {
            alert('dblclick');
        }
    }
},
...
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

如果有人需要答案 - 这是正确的方法:

Ext.define('Application.usersGrid', {
extend: 'Ext.grid.Panel',
alias: 'widget.usersgrid',


viewConfig: {
    listeners: {
        itemdblclick: function(dataview, record, item, index, e) {
            alert('itemdblclick');
        }
    }
},
...
Run Code Online (Sandbox Code Playgroud)

http://dev.sencha.com/new/ext-js/4-0/api/Ext.grid.GridView#event-itemdblclick

Abd*_*oof 25

您不需要将侦听器放在viewconfig中.这是我的工作配置:

listeners : {
    itemdblclick: function(dv, record, item, index, e) {
        alert('working');
    }
},
Run Code Online (Sandbox Code Playgroud)

另一件事是,你好像Ext.grid.GridPanel在extend属性中使用过.但在文档中它是Ext.grid.Panel.但即使使用gridpanel,一切似乎都运行良好.

我建议使用Ext JS 4术语,因为它可能导致其他4.x版本中的应用程序破坏.

现在,如果您正在使用新的MVC架构,则需要将这些操作移动到控制器而不是视图.有关详细信息,请参阅MVC体系结构指南.