javascript - 根据单元格值设置 SlickGrid 单元格样式

标签 javascript css slickgrid

如何使用 SlickGrid 根据单元格的值更改单元格的样式(比如文本颜色)? IE 如果单元格值低于 50,则将其设为绿色,否则将其设为红色。

我查看了 getItemMetadata,但它似乎没有办法设置单元格特定样式,也没有办法根据单元格值动态确定类。

最佳答案

这就是我过去通常处理单元格级别样式的方式。显然,您必须使用数据 View 才能工作。我只是把它放在我的网格设置的底部,就在我渲染网格的上面。希望对您有所帮助!

//Put this in your style sheet. 
.greenCSSclass {color:green;}
.redCSSclass {color:red;}

dataView.getItemMetadata = metadata(dataView.getItemMetadata);
var redCells= {}; 
var greenCells= {};          
function metadata(old_metadata_provider) {
      return function (row) {
          var item = this.getItem(row);
          var ret = (old_metadata_provider(row) || {});            
          if (item) {
              ret.cssClasses = (ret.cssClasses || '');
              //Include any row level CSS rules here by editing ret.cssClasses

              //Clear previous CSS rule for this cell.
              if (redCells.hasOwnProperty(row)) {
                  delete redCells[row];
              }
              if (greenCells.hasOwnProperty(row)) {
                  delete greenCells[row];
              }

              //Evaluate the value here and add to either map
              if (item.columnName < 50 ) {
                  if (!greenCells[row]) {
                      greenCells[row] = {};
                  }
                  greenCells[row]["columnName"] = "greenCSSclass";
              } else {
                  if (!redCells[row]) {
                      redCells[row] = {};
                  }
                  redCells[row]["columnName"] = "redCSSclass";
              }

              //Set Cell CSS. 
              grid.setCellCssStyles("greenCells", greenCells);
              grid.setCellCssStyles("redCells", redCells);
          }
          return ret;
      }
  }

关于javascript - 根据单元格值设置 SlickGrid 单元格样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26517733/

相关文章:

javascript - SlickGrid 中默认禁用列

javascript - 按钮未在 Bootstrap 弹出窗口内触发

javascript - foreignObject 中的背景图像隐藏了 Firefox 上的其他 svg 元素

JavaScript if "x = (a || b || c)"语句不工作

slickgrid - 排序后重新设计动态样式的 SlickGrid 单元格

javascript - SlickGrid 并从单元格复制文本

javascript - 在 firebase 内部调用 'this' once 函数

javascript - 如何在当前光滑元素下方添加插入符号?

css - First-of-type 和 Last-of-type 的 CSS 技巧导致圆边在 IE11 中显得更短

android - 在 Bootstrap 响应式 View 中只有图片链接的一 Angular 是可点击的