Events 向网格中的XTemplate元素类添加事件侦听器

Events 向网格中的XTemplate元素类添加事件侦听器,events,grid,extjs4,listener,Events,Grid,Extjs4,Listener,我在网格面板中有一列XTemplate单元格。如何添加适用于此特定列上所有单元格的单击事件/侦听器?到目前为止,我所尝试的方法是有效的,但适用于网格中任何单元格上的所有单击。我似乎无法操纵委托选项来筛选特定的元素类 到目前为止,我的代码是: columns:[ ... { xtype: 'templatecolumn', text: 'Approve2', flex: 1, dataIndex: 'Approved', align: 'center',

我在网格面板中有一列XTemplate单元格。如何添加适用于此特定列上所有单元格的单击事件/侦听器?到目前为止,我所尝试的方法是有效的,但适用于网格中任何单元格上的所有单击。我似乎无法操纵委托选项来筛选特定的元素类

到目前为止,我的代码是:

columns:[

...

{
    xtype: 'templatecolumn',
    text: 'Approve2',
    flex: 1,
    dataIndex: 'Approved',
    align: 'center',
    sortable: false,
    tpl: '<input type="checkbox" class="approveCheckbox" />'
},

...

],
initComponent: function () {
    this.on('itemclick', this.storeCheckboxVal, this, { delegate: '.approveCheckbox' });
},

...

,
storeCheckboxVal: function (view, record, item, index, event) {
        alert(record.data['ID']);
}
列:[
...
{
xtype:'templatecolumn',
文本:“批准2”,
弹性:1,
数据索引:“已批准”,
对齐:'居中',
可排序:false,
第三方物流:''
},
...
],
initComponent:函数(){
this.on('itemclick',this.storeCheckboxVal,this,{delegate:'.approveCheckbox'});
},
...
,
storeCheckboxVal:函数(视图、记录、项、索引、事件){
警报(记录.数据['ID']);
}

您可能需要将网格的selType更改为
cellmodel
。之后,您应该能够听到网格视图的cellclick。这似乎没有文档记录,但我使用
Ext.util.obersavable.capture(Ext.getCmp('my-grid')、console.log)
发现了它,这是一个非常有用的技巧。

您可能需要将网格的selType更改为
cellmodel
。之后,您应该能够听到网格视图的cellclick。这似乎没有文档记录,但我使用
Ext.util.obersavable.capture(Ext.getCmp('my-grid')、console.log)
发现它,这是一个非常有用的技巧。

AFAIK,
委托
仅当您将处理程序分配给DOM元素(而不是组件)时才起作用。请尝试以下代码:

initComponent: function () {
    this.mon(this.el, 'click', this.storeCheckboxVal, this, { delegate: '.approveCheckbox' });
},

好的,
delegate
仅当您将处理程序分配给DOM元素(而不是组件)时才起作用。请尝试以下代码:

initComponent: function () {
    this.mon(this.el, 'click', this.storeCheckboxVal, this, { delegate: '.approveCheckbox' });
},

感谢所有回复,但我已通过此解决方案解决了我的问题:

感谢所有回复,但我已通过此解决方案解决了我的问题: