关于extjs:在网格上实现beforeedit监听器

Implementing beforeedit listener on a grid

我正在尝试在我的表中实现 beforeedit 侦听器。我想在允许用户对单元格做某事之前做一些检查。

1
2
3
4
5
6
7
8
    Ext.define('myGrid', {
        extend: 'Ext.grid.Panel',

        listeners: {
          beforeedit: function (e) {
            alert('hi')
          },
        }

当我尝试编辑单元格时,不会调用此警报(..)。为什么这不进入听众?如果我在 Internet 上查看,有很多 Ext.grid.Panel 的示例与 beforeedit.

无论如何,我尝试使用 Ext.grid.EditorGridPanel 进行扩展。

1
2
3
4
5
6
7
8
    Ext.define('myGrid', {
        extend: 'Ext.grid.EditorGridPanel',

        listeners: {
          beforeedit: function (e) {
            alert('hi')
          }
        }

现在我得到了一个典型的 extjs 方式的模糊错误:

http://jsfiddle.net/S8Tgm/13/

我做错了什么?为什么要在普通网格上使用 EditorGridPanel?是否适用于类似 Excel 的属性?

编辑:是的。抱歉,我忘了在"听众"中添加 beforeedit。问题仍然存在。


1
2
3
4
5
6
7
8
9
listeners: {
    beforeedit: function (e) {
        alert('hi')
    }
},
plugins: [
  Ext.create('Ext.grid.plugin.RowEditing', { //or even better - use ptype here
     clicksToEdit: 1
})],

http://jsfiddle.net/S8Tgm/12/ - 工作小提琴

你错过了一些东西:

网格没有 \\'beforeedit\\' 事件。您需要在网格中添加一个编辑器示例在这里

事件应该放在"listeners"对象中

(在使用 stackoverflow 标记时遇到了大麻烦)