如何根据Handsontable中另一个单元格的条件/值将样式应用于单元格

时间:2016-05-23 14:27:47

标签: javascript handsontable

我想使用自定义渲染器功能将一些样式应用于Handsontable中的特定单元格。必须使用if条件应用样式,我需要在handontable中检查另一个单元格的值。

有没有办法使用自定义渲染器实现此目的?

2 个答案:

答案 0 :(得分:0)

如何在文档中实现条件格式设置great demo

答案 1 :(得分:0)

这是一个例子,例如根据特定列中给出的值为整行着色。使用instance.getData(),您可以检索rhandsontable对象中的完整数据。您可以使用索引访问特定单元格。

library(rhandsontable)

DF = data.frame( bool = TRUE,val = 1:10, big = LETTERS[1:10],
                 small = letters[1:10],
                 stringsAsFactors = FALSE)

text_renderer <- "
  function (instance, td, row, col, prop, value, cellProperties) {
    Handsontable.renderers.TextRenderer.apply(this, arguments);
    var col_value = instance.getData()[row][2]
    if (col_value == 'C') {
      td.style.background = 'pink';
    } else if (col_value == 'D') {
      td.style.background = 'green';
    }
  }"

bool_renderer <- "
  function (instance, td, row, col, prop, value, cellProperties) {
    Handsontable.renderers.CheckboxRenderer.apply(this, arguments);
    var col_value = instance.getData()[row][2]
    if (col_value == 'C') {
      td.style.background = 'pink';
    } else if (col_value == 'D') {
      td.style.background = 'green';
    }
  }
"

rhandsontable(DF, readOnly = FALSE, width = 750, height = 300) %>%
  hot_col(col = c(2, 3, 4), renderer = text_renderer) %>%
  hot_col("bool", renderer = bool_renderer)