4

我对 Shiny 中的 DT 相当陌生,并且想将文本颜色添加到表中的特定列,我可以formatStyle按照下面的示例代码块来执行此操作。但是,我也想在相应的列名(标题)中添加相同的文本颜色,有没有简单的方法可以做到这一点?

library(shiny)
library(DT)

ui = fluidPage(DT::dataTableOutput('fDataTable'))

server = function(input, output) {
  output$fDataTable = DT::renderDataTable({
    DT::datatable(iris) %>%
      formatStyle(columns = 1, color = "red") %>%
      formatStyle(columns = 3, color = "blue")
  })
}  

app = list(ui = ui, server = server)
runApp(app)

任何帮助将不胜感激。

4

1 回答 1

9

您可以通过将 CSS 添加到colnames您正在呈现的表格中来做到这一点(您还需要设置escape为,FALSE否则 html 将被转义)。

这是一个例子:

library(shiny)
library(DT)

ui = fluidPage(DT::dataTableOutput('fDataTable'))

server = function(input, output) {
  output$fDataTable = DT::renderDataTable({
    iris_coloured <- iris
    colnames(iris_coloured)[c(1,3)] <- paste0('<span style="color:',c("red","blue"),'">',colnames(iris)[c(1,3)],'</span>')
    DT::datatable(iris_coloured,escape=F) %>%
      formatStyle(columns = 1, color = "red") %>%
      formatStyle(columns = 3, color = "blue")
  })
}  

app = list(ui = ui, server = server)
runApp(app)
于 2016-01-28T12:59:20.783 回答