Случайное изменение фона конкретной строки
Я использую Rhandsontable в R блестящий, и я хотел бы изменить цвет строки с "Сумма" в первом столбце. Поскольку количество строк не фиксировано, выбор строки "Сумма" на основе номера строки не работает. Я попробовал приложенный код, который, к сожалению, не работает. Большое спасибо за вашу помощь!
library(shiny)
library(rhandsontable)
runApp(list(server=
shinyServer(function(input, output, session) {
CF_amt <- as.data.frame(matrix(0.0, nrow=5, ncol=10));
CF_type <- data.frame(source = c("Row1","Row2","Row3","Row4","Sum"),
stringsAsFactors = FALSE);
CF_names <- c("source","C1","C2","C3","C4","C5","C6","C7","C8","C9","C10");
CF_tbl <- cbind(CF_type,CF_amt);
values <- reactiveValues(data = CF_tbl)
output$table <- renderRHandsontable({
rhandsontable(values$data,rowHeaders = NULL,colHeaders=CF_names) %>%
hot_cols(fixedColumnsLeft = 1, renderer = "
function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
if (col == 0) {
td.style.background = '#F0F0F0';
}
else if(this.instance.getData()[row][0] == 'Sum'){
td.style.background = '#F00000';
}
}"
)
})
})
,ui=
shinyUI(navbarPage("Test",
tabPanel("HOT",
fluidPage(fluidRow(
column(12,rHandsontableOutput("table"))
))
)
))
))
1 ответ
Похоже, у вас есть ошибка JavaScript. Попробуйте изменить
this.instance.getData()[row][0]
в
instance.getData()[row][0]
так как instance
передается в качестве параметра вашей функции рендеринга.