我有一个网格,我将活动的dom内容添加到每个单元格中。截至目前,我将其添加为列渲染器中的html文本:
renderer:function(data) {
str = "";
Ext.each(data,function(paragraph,i) {
str += '<div onclick="Ext.getCmp(\'grid\').paragraphClick('+paragraph.get("Id")+');">'+paragraph.get("Text")+'</div>'
});
return str;
}
我应该提到data
是一个包含另一个记录列表的记录字段。
现在,我想你会称之为你见过的最糟糕的ExtJS代码&#34;。这很公平。
但是,如何使用Ext元素和侦听器以符合ExtJS的方式执行此操作?
答案 0 :(得分:1)
使用cellclick事件,然后检查目标:
renderer: function(v) {
return '<div class="foo">' + v + '</div>';
}
listeners: {
cellclick: function(view, td, cellIndex, record, tr, rowIndex, e) {
if (e.getTarget('.foo') {
// clicked on foo, use record data to give you context
}
}
}