I want to change the colour of the whole row when the user unchecks a checkbox present in one of the cells. (Could be multiple rows)
So far I'm only able to change the colour of the cell containing the checkbox rather than the whole row. In this example, the whole row 6 should be coloured.
library(shiny)
library(rhandsontable)
# Define UI for application that draws a histogram
ui <- fluidPage(
rHandsontableOutput('table')
)
# Define server logic required to draw a histogram
server <- function(input, output) {
df <- data.frame(alphabet = letters[1:10],
include = TRUE)
output$table <- rhandsontable::renderRHandsontable({
rhandsontable(df, height = 500) %>%
hot_col(col = "include",
renderer = "
function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.CheckboxRenderer.apply(this, arguments);
var col_value = instance.getData()[row][1]
if (col_value === false) {
td.style.background = 'pink';
}
}
")
})
}
# Run the application
shinyApp(ui = ui, server = server)
Solved it.
library(shiny)
library(rhandsontable)
# Define UI for application that draws a histogram
ui <- fluidPage(
rHandsontableOutput('table')
)
# Define server logic required to draw a histogram
server <- function(input, output) {
df <- data.frame(alphabet = letters[1:10],
include = TRUE)
output$table <- rhandsontable::renderRHandsontable({
rhandsontable(df, height = 500) %>%
hot_col(col = "include",
renderer = "
function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.CheckboxRenderer.apply(this, arguments);
var col_value = instance.getData()[row][1]
if (col_value === false) {
td.style.background = 'pink';
}
}
") %>%
hot_col(col = "alphabet",
renderer = "
function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
var col_value = instance.getData()[row][1]
if (col_value === false) {
td.style.background = 'pink';
}
}
")
})
}