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

标签 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>

最佳答案

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/

相关文章:

jquery - 同位素 - 同位素之外的元素

javascript - SlickGrid 中可以使用可变行高吗?

php - 编辑器中的 Slickgrid html 实体问题

css - Less 中基于颜色的条件逻辑

javascript - 在 JavaScript 代码中添加跨度以更改显示数字的颜色

javascript - 滚动时改变div的高度

javascript - 为什么在循环中运行 splice 方法时 JS 数组会跳过某些条目?

java - JTextPane 垂直对齐文本和 <img> 图像与 html

jquery - 是否可以通过编程方式更改 slickgrid 中列的宽度?

javascript - 如何使用 hammer.js 2 获得正确的事件传播?