重新排序在排序后动态设置SlickGrid单元格样式

时间:2011-06-16 21:52:59

标签: slickgrid

好的,让我更清楚地解释一下我的情景:

当一个单元格被编辑时,它变得“脏”,我通过javascript将一个CSS类添加到单元格中以某种方式设置它。

然后,如果用户对网格进行排序,则样式将丢失(我相信因为所有行都被重新创建),我需要一种方法将样式恢复到排序后的相应单元格/行。

我试图做的是在data []中添加一个名为'status'的条目,在onCellChange I中循环传递data []并将args.item.Id与data []中的相应条目相匹配。

grid.onCellChange.subscribe(function (e, args) {
    var done = false;
    for (var i = 0; i < data.length && !done; i++) {
        if (data[i].id == args.item.id) {
            data[i].status = "dirty";
            done = true;
        }
    }
}

但是,onSort我不确定如何将排序的行与数据数组匹配。 (因为我没有args.item)我试图做选择器语句: $(“滑头行”) 重新设置正确的单元格,但我无法将行与数据[]中的条目相关联。

1 个答案:

答案 0 :(得分:3)

1)无需在onCellChange处理程序中搜索该项目 - 它位于“args.item”。

2)对“数据”数组进行排序不会消除对#1中项目的更改。

3)你提到动态造型细胞。我看不出那个代码。如果您的自定义格式化程序是查看“item.status”的代码段,并且如果它是脏的则呈现不同的代码,那么您不必执行任何额外操作。对数据进行排序并告诉网格重新渲染将保留“脏”单元格样式。