我使用以下代码设置行的背景颜色,根据更改的值但它没有工作,行颜色没有改变:
MyGrid.onCellChange.subscribe(function (e, args)
{
var data = Grid.getData();
if(data[args.row].IsDeleted == true)
{
args.row.cssClasses += 'MyBlueColor'; //Set Css Class
}
}
<style type="text/css">
.MyBlueColor
{
background-color: blue;
}
</style>
答案 0 :(得分:0)
args.row
是行索引,而不是行本身
check out what is passed as the event args when onCellChange
is triggered
要根据数据项更改行的cssClass,您需要实现自定义getItemMetadata
函数以返回该行的自定义元数据。在slick.groupitemmetadataprovider.js
所以作为 hack 只是为了确保它有效,你可以用你自己的自定义函数替换getItemMetadata
中的slick.dataview.js
函数,它看起来像:
function getItemMetadata(i) {
var item = rows[i];
if (item === undefined) {
return null;
}
if (item.IsDeleted) {
return {
cssClasses: 'MyBlueColor'
};
}
return null;
}
这显然会破坏原始列定义,但是一旦你弄清楚getRowMetadata
函数如何工作,你应该能够创建类似于slick.groupitemmetadataprovider.js
的自己的元数据提供者,甚至可以返回自定义元数据每一栏!