【发布时间】:2011-12-23 11:55:47
【问题描述】:
要更改整行背景颜色,我们可以使用 getRowClass,但是如何仅对一个单元格和特定列执行相同的逻辑......有什么想法吗?
//EXTJS
viewConfig: {
getRowClass: function(record, index) {
var c = record.get('change');
if (c < 0) {
return 'price-fall';
} else if (c > 0) {
return 'price-rise';
}
}
}
//CSS
.price-fall {
background-color: #FFB0C4;
}
.price-rise {
background-color: #B0FFC5;
}
编辑:
有一种方法可以做到这一点:
function change(val){
if(val > 0){
return '<div class="x-grid3-cell-inner" style="background-color:#B0FFC5;"><span style="color:green;">' + val + '</span></div>';
}else if(val < 0){
return '<div class="x-grid3-cell-inner" style="background-color:#FFB0C4;"><span style="color:red;">' + val + '</span></div>';
}
return val || 0;
}
然后只是:
...
{header: 'Change', width: 75, sortable: true, renderer: change, dataIndex: 'change', align: 'center'}
...
但是这种方式网格会随着从白色到彩色背景的变化而变形...... ???
还有其他想法吗?
编辑
自定义 css 应用于列后,如何在短时间内将其删除,以便在值更改时出现 blink 一次?类似setTimeout("remove-css()",1000); 或Ext.Function.defer(remove-css, 1000);
有什么想法吗?
【问题讨论】: