根据 Sencha 文档,numbercolumn、datecolumn 和 booleancolumn 没有渲染器事件。尽管这听起来很合乎逻辑,但在这些列类型上没有渲染器事件存在一个固有问题。
当记录的 LineNum 在警告行号数组中时,视图控制器中的渲染器函数示例修改背景颜色。
renderCompanyID: function(value, metaData, record, rowIndex, colIndex, store, view) {
if (record.get('LineNum') > 0) {
this.warningLineArr.forEach( function (item, index){
if (item['LineNum'] == record.get('LineNum')) {
metaData.style = "background-color: rgba(255, 184, 77, 0.25);";
view.addRowCls(rowIndex, 'rec-warn');
}
});
}
},
而gridcolumn定义中的渲染器如下
xtype: 'gridcolumn',
renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
Ext.fireEvent('renderCompanyID', value, metaData, record, rowIndex, colIndex, store, view);
return value;
},
dataIndex: 'CompanyID',
text: 'Company ID'
由于在数字和日期列上没有渲染器选项,结果如下:
所以问题是,数字、日期或布尔列上是否有事件、侦听器或属性会将元数据发送到处理程序,从而可以根据条件和每行/单元格更改元数据?