0

我使用以下代码为行设置背景颜色,基于更改的值但它不起作用,行颜色没有改变:

        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>
4

1 回答 1

0

args.row是行索引,而不是行本身

onCellChange检查触发时作为事件参数传递的内容

要根据数据项更改行的 cssClass,您需要实现一个自定义getItemMetadata函数来返回该行的自定义元数据。看看这是如何实现的slick.groupitemmetadataprovider.js

因此,为了确保其正常工作,您可以使用自己的自定义函数替换该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甚至为每列返回自定义元数据!

于 2013-10-30T01:35:39.647 回答