将事件侦听器添加到网格中的一类XTemplate元素

时间:2012-02-27 14:19:15

标签: events grid extjs4 listener

我在网格面板中有一列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']);
}

3 个答案:

答案 0 :(得分:2)

AFAIK,delegate仅在您将处理程序分配给DOM元素(而非Component)时才有效。请尝试使用此代码:

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

感谢所有回复,但我已通过此解决方案设法解决了我的问题:Ext JS on click event