如何将css类添加到slickGrid中的特定行?

如何将css类添加到slickGrid中的特定行?,slickgrid,Slickgrid,我搜索了所有地方,以了解如何将类添加到slickgrid中的特定行。它看起来像过去有一个rowCssClasses的财产,但现在不见了。在此方面的任何帮助都将不胜感激 更新:我使用getItemMetadata解决了这个问题……因此在渲染之前,您必须执行以下操作: dataView.getItemMetadata = function (row) { if (this.getItem(row).compareThis > 1) { return {

我搜索了所有地方,以了解如何将类添加到slickgrid中的特定行。它看起来像过去有一个rowCssClasses的财产,但现在不见了。在此方面的任何帮助都将不胜感激

更新:我使用getItemMetadata解决了这个问题……因此在渲染之前,您必须执行以下操作:

dataView.getItemMetadata = function (row) {
    if (this.getItem(row).compareThis > 1) {
        return {
            'cssClasses': 'row-class'
        };
    }
};
这将把“row类”注入到与if语句匹配的行中。这个getItemMetadata函数似乎不存在,直到您将它放在那里,并检查其中是否有任何内容。这让你很难找到它的选项,但是如果你在slick.grid.js文件中搜索getItemMetadata,你应该会找到一些隐藏的宝藏!我希望这对别人有帮助


如果有更好的方法,请告诉我。

在较新版本的SlickGrid中,DataView提供了自己的getItemMetadata来为组标题和总计提供格式。不过,很容易将其与您自己的实现联系起来。比如说,

函数行\u元数据(旧的\u元数据\u提供程序){
返回函数(行){
var item=此.getItem(行),
ret=旧的元数据提供者(行);
如果(项目和项目){
ret=ret |{};
ret.cssClasses=(ret.cssClasses | |?'')+脏的;
}
返回ret;
};
}
dataView.getItemMetadata=行元数据(dataView.getItemMetadata);

您可以使用setCellCssStyles函数:

grid.setCellCssStyles(键,散列)

键-字符串键。将覆盖已与关联的任何数据 这把钥匙

哈希-由行号和 然后按列id。可以指定和分隔多个CSS类 按空间

例如:

{ 0: { “数字列”:“单元格粗体”, “标题栏”:“单元格标题单元格突出显示” }, 4: { “百分比列”:“单元格突出显示” }}

我用它来突出显示网格中编辑的字段。我不喜欢getItemMetadata方法

        myDataView.getItemMetadata = function(index)
        {
            var item = myDataView.getItem(index);
            if(item.isParent === true) {
                return { cssClasses: 'parentRow' };
            }
            else {
                return { cssClasses: 'childRow' };
            }
        };
//在我的CSS中

       .parentRow {
           background-color:  #eeeeee;
        }
        .childRow {
           background-color:  #ffffff;
        }    

参数的值是多少?我调试并查看
始终
=0
,因此
始终是数据源中的第一项。这个答案似乎简单得多,而且还有一个优点,即允许我将注意力集中在单元格而不是行上。我使用它来更改行中每个单元格的背景,使整行显示为高亮显示。这很有帮助,因为我想覆盖前面应用的特定于单元格的背景色,所以我需要单独选择单元格,而不是行对象。