我使用下面的代码为行设置背景颜色,基于更改的值但它不起作用,行颜色没有改变:
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>
最佳答案
args.row
是行索引,不是行本身
check out what is passed as the event args when onCellChange
is triggered
要根据数据项更改行的 cssClass,您需要实现自定义 getItemMetadata
函数返回该行的自定义元数据。在 slick.groupitemmetadataprovider.js
中查看这是如何实现的
作为一个hack 只是为了确保它有效,您可以将 slick.dataview.js
中的 getItemMetadata
函数替换为您自己的函数看起来像这样的自定义函数:
function getItemMetadata(i) {
var item = rows[i];
if (item === undefined) {
return null;
}
if (item.IsDeleted) {
return {
cssClasses: 'MyBlueColor'
};
}
return null;
}
这显然会破坏原始的列定义,但是一旦您了解了 getRowMetadata
函数的工作原理,您应该能够创建自己的元数据提供程序,类似于 slick.groupitemmetadataprovider.js
甚至为每一列返回自定义元数据!
关于javascript - SlickGrid 在事件 onCellChange 上设置行背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19642369/