在 rhandsontable 中更改背景图像(或任何两个 css 属性)
Changing background-image (or any two worded css properties) in rhandsontable
有很多示例可以说明如何将 自定义呈现 与 rhandsontables
结合使用,但不幸的是,它们都使用一个单一的措辞 css 属性,例如 color
或 background
.
两个css-properties如background-color
、background-image
、font-size
等怎么样?用点 (.) 替换连字符 (-) 不起作用。
并且使用连字符会破坏代码并引发此错误:
ReferenceError: invalid assignment left-hand side
在该代码示例中,如果值为 "F",我想将线性渐变指定为 background-image
并将颜色更改为红色。
出现红色,但没有出现渐变。
我该如何解决?
library(rhandsontable)
library(shiny)
DF = data.frame(val = 1:10, bool = TRUE, big = LETTERS[1:10], stringsAsFactors = FALSE)
ui <- fluidPage(
rHandsontableOutput("tbk")
)
server <- function(input, output) {
output$tbk <- renderRHandsontable({
rhandsontable(DF, width = 550, height = 300) %>%
hot_cols(renderer = "
function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
if (value == 'F') {
td.style.background-image = 'linear-gradient(to right, transparent, green)';
td.style.color = 'red';
} else if(value == 'J') {
td.style.background = 'lightgreen';
} else if(value == 'A' | value == 'x') {
td.style.background = 'lightblue'}
}")
})
}
shinyApp(ui, server)
如果我再试几分钟,我就不需要问这个问题了。但无论如何,它可能对其他为此苦苦挣扎的人有用,因为我没有找到太多关于它的参考。
解决办法是去掉连字符和点,使第一个字母大写。
所以 background-image
变成 backgroundImage
,或者 font-size
变成 fontSize
!
library(rhandsontable)
library(shiny)
DF = data.frame(val = 1:10, bool = TRUE, big = LETTERS[1:10], stringsAsFactors = FALSE)
ui <- fluidPage(
rHandsontableOutput("tbk")
)
server <- function(input, output) {
output$tbk <- renderRHandsontable({
rhandsontable(DF, width = 550, height = 300) %>%
hot_cols(renderer = "
function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
if (value == 'F') {
td.style.backgroundImage = 'linear-gradient(to right, transparent, green)';
td.style.fontSize = '25px';
td.style.color = 'red';
} else if(value == 'J') {
td.style.background = 'lightgreen';
} else if(value == 'A' | value == 'x') {
td.style.background = 'lightblue'}
}")
})
}
shinyApp(ui, server)
有很多示例可以说明如何将 自定义呈现 与 rhandsontables
结合使用,但不幸的是,它们都使用一个单一的措辞 css 属性,例如 color
或 background
.
两个css-properties如background-color
、background-image
、font-size
等怎么样?用点 (.) 替换连字符 (-) 不起作用。
并且使用连字符会破坏代码并引发此错误:
ReferenceError: invalid assignment left-hand side
在该代码示例中,如果值为 "F",我想将线性渐变指定为 background-image
并将颜色更改为红色。
出现红色,但没有出现渐变。
我该如何解决?
library(rhandsontable)
library(shiny)
DF = data.frame(val = 1:10, bool = TRUE, big = LETTERS[1:10], stringsAsFactors = FALSE)
ui <- fluidPage(
rHandsontableOutput("tbk")
)
server <- function(input, output) {
output$tbk <- renderRHandsontable({
rhandsontable(DF, width = 550, height = 300) %>%
hot_cols(renderer = "
function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
if (value == 'F') {
td.style.background-image = 'linear-gradient(to right, transparent, green)';
td.style.color = 'red';
} else if(value == 'J') {
td.style.background = 'lightgreen';
} else if(value == 'A' | value == 'x') {
td.style.background = 'lightblue'}
}")
})
}
shinyApp(ui, server)
如果我再试几分钟,我就不需要问这个问题了。但无论如何,它可能对其他为此苦苦挣扎的人有用,因为我没有找到太多关于它的参考。
解决办法是去掉连字符和点,使第一个字母大写。
所以 background-image
变成 backgroundImage
,或者 font-size
变成 fontSize
!
library(rhandsontable)
library(shiny)
DF = data.frame(val = 1:10, bool = TRUE, big = LETTERS[1:10], stringsAsFactors = FALSE)
ui <- fluidPage(
rHandsontableOutput("tbk")
)
server <- function(input, output) {
output$tbk <- renderRHandsontable({
rhandsontable(DF, width = 550, height = 300) %>%
hot_cols(renderer = "
function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
if (value == 'F') {
td.style.backgroundImage = 'linear-gradient(to right, transparent, green)';
td.style.fontSize = '25px';
td.style.color = 'red';
} else if(value == 'J') {
td.style.background = 'lightgreen';
} else if(value == 'A' | value == 'x') {
td.style.background = 'lightblue'}
}")
})
}
shinyApp(ui, server)