我到处搜索了解如何将类添加到slickgrid中的特定行。它看起来像曾经是一个rowCssClasses属性,但它现在已经消失了。对此有任何帮助将非常感激。
更新:我使用getItemMetadata来解决这个问题......所以在渲染之前,你必须做这样的事情:
dataView.getItemMetadata = function (row) {
if (this.getItem(row).compareThis > 1) {
return {
'cssClasses': 'row-class'
};
}
};
这将注入“排班”'进入与if语句匹配的行。似乎这个getItemMetadata函数不存在,直到你把它放在那里并且slickGrid检查是否有任何东西存在。这使得很难找出它的选项,但如果你在slick.grid.js文件中搜索getItemMetadata,你应该找到一些隐藏的宝藏!我希望这有助于某人!
如果有更好的方法,请告诉我。
答案 0 :(得分: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);
答案 1 :(得分:7)
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;
}
答案 2 :(得分:1)
您可以使用setCellCssStyles函数: https://github.com/mleibman/SlickGrid/wiki/Slick.Grid#wiki-setCellCssStyles
grid.setCellCssStyles(key,hash)
key - 一个字符串键。将覆盖已经关联的任何数据 这把钥匙。
hash - 由行号和键控制的其他单元格CSS类的哈希 然后按列id。可以指定和分隔多个CSS类 按空间。
示例:
{ 0:{ “number_column”:“cell-bold”, “title_column”:“cell-title cell-highlighted” }, 4:{ “percent_column”:“细胞突出显示” }}
我用它来突出显示网格中已编辑的字段。我不喜欢getItemMetadata方法。