2014-09-29 122 views
0

我试图在我的表中实现beforeedit监听器。我想在用户被允许为单元格做某事之前做一些检查。在网格上实现preedit监听器

Ext.define('myGrid', { 
     extend: 'Ext.grid.Panel', 

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

当我尝试和编辑单元格,这警报(..)不叫。为什么这不会进入聆听者?如果我在网上看,有很多ext.grid.Panel和beforeedit的例子。

无论如何,我试图扩展与而不是Ext.grid.EditorGridPanel

Ext.define('myGrid', { 
     extend: 'Ext.grid.EditorGridPanel', 

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

现在我得到了典型的ExtJS的时尚一个不起眼的错误:

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

我在做什么错?为什么你应该在正常的网格上使用EditorGridPanel?这是Excel的属性?

编辑:是的。对不起,我忘了提前在'听众'。问题依然存在。

回答

1
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' 事件。你需要一个编辑器添加到您的网格Example is here

活动应放在“听众”对象

(具有计算器标记带来很大麻烦)

+0

有没有这样做,而不RowEditing插件的任何方式? – 2014-09-29 16:19:52

+0

我有点缺少这里的意思..你可以改用CellEditor。点击复选框时是否需要触发事件?没有实际的行编辑?这是网格上的sencha文档:[http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.Panel](http://docs.sencha.com/extjs/4.2.2 /#!/api/Ext.grid.Panel) - 选中“事件”下拉菜单查看所有可用的网格事件(没有任何插件) – 2014-09-29 16:24:22

+0

ahhh ok。编辑器必须添加为插件 – 2014-09-29 16:28:57