我在extjs 4.2.1中有一个gridpanel,我在其上使用ftype rowbody为每一行添加其他元素。在这种情况下,我在每行添加一行按钮(标签)。
aa=
因此标记在行中正确显示,但是我想要将侦听器(单击处理程序)添加到这些单独的标记中。这可能是使用rowbody还是我应该使用其他方法添加这些标签
答案 0 :(得分:0)
是的,您可以使用某些全局范围添加点击处理程序。 我的建议是为你的网格类定义一个静态处理程序:
Ext.define('MyApp.view.MyGrid', {
extend: 'Ext.grid.Panel',
xtype: 'orderlinesgrid',
requires: [
'Ext.grid.feature.RowBody'
],
statics: {
onTagClick: function(btn, tag) {
// Click handler code...
}
}
features: [{
ftype: 'rowbody',
getAdditionalData: function(data, idx, record, orig) {
var headerCt = this.view.headerCt
var colspan = headerCt.getColumnCount()
var rowData = ''
record.data.tags.forEach(function(tag) {
rowData += '<button class="tagDiv" onclick="MyApp.view.MyGrid.onTagClick(this,\'' + tag.name + '\')">' + tag.name + '</button>'
})
// Usually you would style the my-body-class in CSS file
return {
rowBody: rowData,
rowBodyCls: 'tagRow',
rowBodyColspan: colspan
}
}
}, {
ftype: 'rowwrap'
}],