如果某个单元格不为空,如何在Slickgrid中更改行背景颜色?

时间:2017-03-01 07:43:26

标签: javascript jquery slickgrid

如果该行中的某个单元格不为空,我想更改整行背景颜色。我一直在添加自定义格式化程序,但没有结果。

1 个答案:

答案 0 :(得分:0)

事实证明比我想象的要困难。

无论如何,假设field值为0,1,2,3的列为& 4您可以执行以下操作:

 var colNeedingData = 2; // Column "C" (row headings are ignored in the index)

 function cellNotEmptyFormatter(row, cell, value, columnDef, dataContext) {

   if (dataContext[colNeedingData] && dataContext[colNeedingData] != '') {
     var rowCells = {};        

     rowCells[row] = {
       0: "highlight",
       1: "highlight",
       2: "highlight",
       3: "highlight",
       4: "highlight"
     };

     grid.setCellCssStyles("highlightRowWhenNotEmpty" + row, rowCells); // add row# to make a unique key
   } else if (dataContext[colNeedingData] == '') {
     grid.removeCellCssStyles("highlightRowWhenNotEmpty" + row); // add row# to make a unique key
   } 

   if (value)
       return value;
   else
       return '';
 };

列定义与

一致
for (var i = 0; i < 5; i++) {
  columns.push({
     id: i,
     name: String.fromCharCode("A".charCodeAt(0) + i),
     field: i,
     width: 100,
     editor: Slick.Editors.Text,
     formatter: cellNotEmptyFormatter
  });
}

当第3列中存在数据时,这将为行中的每个单元格提供highlight类(下面的jsfiddle中的“C”列)。

这是一个演示 - http://jsfiddle.net/gftqzyj5/