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