gpt4 book ai didi

javascript - Rhandsontable 条件格式 - 如何根据特定属性值突出显示行?

转载 作者:行者123 更新时间:2023-11-30 15:13:24 25 4
gpt4 key购买 nike

我想根据值对整行应用颜色突出显示,并保留 rhandsontable 的复选框功能。在下面的简单示例中,我希望第 3 行为粉红色,第 4 行为绿色。

library(rhandsontable)

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

###Checkboxes not Present/Entire row not highlighted
rhandsontable(DF, readOnly = FALSE, width = 750, height = 300) %>%
hot_cols(renderer = "
function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.NumericRenderer.apply(this, arguments);
if (value == 'C') {
td.style.background = 'pink';
} else if (value == 'D') {
td.style.background = 'green';
}
}")

####Checkboxes Present
rhandsontable(DF, readOnly = FALSE, width = 750, height = 300)

最佳答案

问题是您使用的 NumericRenderer 试图将应用的列转换为数字。我的解决方案可能不是最优的,但它可以完成工作。

library(rhandsontable)

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

# Text Renderer
text_renderer <- "
function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
# This is the column which you want to check for coloring
var col_value = instance.getData()[row][2]
if (col_value == 'C') {
td.style.background = 'pink';
} else if (col_value == 'D') {
td.style.background = 'green';
}
}"

# Renderer for the bool column
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';
}
}
"
# Entire row highlighted and checkbox attribute preserved
rhandsontable(DF, readOnly = FALSE, width = 750, height = 300) %>%
hot_col(col = c(2, 3, 4), renderer = text_renderer) %>%
hot_col("bool", renderer = bool_renderer)

诀窍在于您创建了两个渲染器:

  • 专门用于您的 bool 列的 CheckboxRenderer
  • 其余列的 TextRenderer。

instance.getData()[row][2] 检索行索引 row 处大列的值。因此渲染器会检查每一行的 if 语句中的条件是否为真。

干杯

关于javascript - Rhandsontable 条件格式 - 如何根据特定属性值突出显示行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44813590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com