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

box*_*nts 18 slickgrid

我到处搜索了解如何将类添加到slickgrid中的特定行.它看起来像曾经是一个rowCssClasses属性,但它现在已经消失了.任何有关这方面的帮助将非常感激.

更新:我使用getItemMetadata来计算...所以在渲染之前,你必须做这样的事情:

dataView.getItemMetadata = function (row) {
    if (this.getItem(row).compareThis > 1) {
        return {
            'cssClasses': 'row-class'
        };
    }
};
Run Code Online (Sandbox Code Playgroud)

这会将'row-class'注入到与if语句匹配的行中.似乎这个getItemMetadata函数不存在,直到你把它放在那里并且slickGrid检查它是否有任何东西.这使得很难找出它的选项,但是如果你在slick.grid.js文件中搜索getItemMetadata,你应该找到一些隐藏的宝藏!我希望这可以帮助别人!

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

Nic*_*cos 11

在较新版本的SlickGrid中,DataView带来了自己的getItemMetadata,以便为组头和总计提供格式.尽管如此,很容易将它与您自己的实现链接起来.例如,

function row_metadata(old_metadata_provider) {
  return function(row) {
    var item = this.getItem(row),
        ret = old_metadata_provider(row);

    if (item && item._dirty) {
      ret = ret || {};
      ret.cssClasses = (ret.cssClasses || '') + ' dirty';
    }

    return ret;
  };
}

dataView.getItemMetadata = row_metadata(dataView.getItemMetadata);
Run Code Online (Sandbox Code Playgroud)

  • `row`参数的值是多少?我调试并看到`row`总是`= 0`,所以`item`总是数据源中的第一项. (2认同)

小智 7

        myDataView.getItemMetadata = function(index)
        {
            var item = myDataView.getItem(index);
            if(item.isParent === true) {
                return { cssClasses: 'parentRow' };
            }
            else {
                return { cssClasses: 'childRow' };
            }
        };
Run Code Online (Sandbox Code Playgroud)

//在我的CSS中

       .parentRow {
           background-color:  #eeeeee;
        }
        .childRow {
           background-color:  #ffffff;
        }    
Run Code Online (Sandbox Code Playgroud)