SlickGrid在事件onCellChange上设置行背颜色

时间:2013-10-28 18:28:41

标签: javascript css slickgrid backcolor

我使用以下代码设置行的背景颜色,根据更改的值但它没有工作,行颜色没有改变:

        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>

1 个答案:

答案 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的自己的元数据提供者,甚至可以返回自定义元数据每一栏!