Переопределить визуализируемый стиль renderDT - PullRequest
0 голосов
/ 31 марта 2020

Подобно этому вопросу , можно изменить цвет выбранных строк в выводе данных с использованием tags$style(HTML(...)) перед функцией DTOutput(). Например,

library(shiny)
library(DT)
library(shinythemes)

ui <- fluidPage(theme = shinytheme("cyborg"),
  tags$style(HTML('table.dataTable tr.selected td, table.dataTable td.selected {background-color: pink !important;}')),
  mainPanel(DT::dataTableOutput('mytable'))
)

server <- function(input, output,session) {

  output$mytable = DT::renderDataTable(    
    datatable(mtcars,
        #style = "bootstrap" # Uncomment to see how the custom css above is overriden
    )
  ) 
}
runApp(list(ui = ui, server = server))

Приведенный выше код отображает белую таблицу с простым форматированием, которая выглядит неуместно в темной теме киборга bootstrap. Однако к нему применяется пользовательский css, что означает, что выбранные строки становятся розовыми. Напротив, если вы раскомментируете аргумент style в datatable, стиль таблицы данных в точности соответствует теме bootstrap, без пользовательского розового выбранного стиля строки.

Как мне применить тему bootstrap к таблице данных и переопределить стиль выбранных строк?

1 Ответ

1 голос
/ 31 марта 2020

Пакет shinythemes переопределяет оба стиля css и классы в html коде. Таким образом, вам необходимо учитывать новые имена классов при применении пользовательских css. Следующая инструкция делает трюк (вместо оригинального tags$style(HTML('table.dataTable tr.selected td,...))):

tags$style(HTML('table.dataTable tr.active td {background-color: pink !important;}'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...