我正在一个闪亮的应用程序中使用DT::renderDT
,并且正在格式化某些列和行的背景色。我需要将行背景色置于列背景色之上。我尝试了formatStyle
的切换顺序,但是没有用。这是一个小例子-
library(shiny)
library(DT)
shinyApp(
ui = fluidPage(
DTOutput("table")
),
server = function(input, output, session) {
output$table <- renderDT({
head(iris) %>%
datatable() %>%
formatStyle(c(2,4), backgroundColor = "#fcf4d9") %>%
formatStyle(1, target = 'row', backgroundColor = styleEqual(4.7, "#fc8a8a"))
})
}
)
红色必须在黄色上方。任何帮助表示赞赏。谢谢!
答案 0 :(得分:1)
这是一个解决方案:
rowCallback <- c(
"function(row, data, displayNum, displayIndex, dataIndex){",
" if(data[1] === 4.7){",
" $(row).find('td').addClass('red');",
" }",
"}"
)
shinyApp(
ui = fluidPage(
tags$head(
tags$style(
HTML(
"table.dataTable tbody tr td.red {background-color: #fc8a8a !important}"
)
)
),
DTOutput("table")
),
server = function(input, output, session) {
output$table <- renderDT({
head(iris) %>%
datatable(options = list(rowCallback = JS(rowCallback))) %>%
formatStyle(c(2,4), backgroundColor = "#fcf4d9")
})
}
)