是否可以在网格中添加隐藏列以存储十六进制颜色。然后使用此列中的值来设置该行的背景颜色样式?
答案 0 :(得分:0)
通过向网格提供有关各行的metadata,可以最直观地完成整行的样式设置。使用Slickgrid数据视图时,由于可能需要支持分组,因此这会变得更具挑战性,因为这些组通过自己的groupItemMetadataProvider
提供一些信息。与信息provided here类似,可以使用一些选项。尝试格式化每个单元格,留下一些可见的空白,并可能导致空单元格出现问题。
因此,我会为您支持的每种颜色提供相应的css类。设置getItemMetadata
以返回每行的相应css。
var defaultImpl = dataView.getItemMetadata
var override = function(row){
if(!defaultImpl(row)) {
var item = dataView.getItem(row)
/*
assuming the color is stored similar to #000000 ... strip off the #
in addition I've prefixed my css classes with 'color_'
*/
var color = item.color ? 'color_' + item.color.substr(1, item.color.length) : ""
var metadata = item.color ? {cssClasses: color} : null
return metadata
}
return defaultImpl(row)
}
dataView.getItemMetadata = override
注意:在网格可用的上下文之外的任何样式尝试都会在滚动时被删除。