R Shiny DataTable выбранный цвет строки

1

Я пытаюсь установить цвет выделения для выбранной строки в DataTable в моем блестящем приложении. В принципе, я хочу, чтобы цвет выбранных строк назывался красным, а не синим. Тем не менее, я совсем не знаком с JavaScript, поэтому я изо всех сил пытаюсь написать соответствующий обратный вызов (по крайней мере, я думаю, что это проблема). Вот что я пробовал до сих пор:

# ui.R
library(shiny)

fluidPage(
  title = 'DataTables Test',
  DT::dataTableOutput('table')
)

# server.R
library(shiny)
library(DT)

# render the table
output$table = renderDataTable(datatable(head(iris, 20), 
options = list(
    initComplete = JS(
      "function(settings, json) {",
      "var rows = $(this.api().table().rows());",
      "for (var i = 0; i < rows.length; i++){ ",
      "var row = rows[i];",
      "row.css({'background-color': '#000', 'color': '#f00'})",
      "}",
      "}")
  )))

})

Как вы можете видеть, до сих пор я просто пытаюсь понять, как изменить цвета строк. Как только я понял это, я попытаюсь изменить css на что-то вроде:

"tr.selected td, table.dataTable td.selected { background-color: #f00}"

Но я еще не добрался - к сожалению, код выше ничего не делает для цвета фона. Если бы кто-нибудь мог помочь мне со всем решением, которое было бы здорово.

  • 0
    В пакете DT есть несколько встроенных функций для изменения цвета шрифта / фона. Смотри здесь
  • 0
    @GregordeCillia Я смотрел на них, но я не мог понять, как раскрасить строку, основываясь на том, был ли он выбран или нет.
Показать ещё 3 комментария
Теги:
datatables
shiny

1 ответ

5
Лучший ответ

Это должно сделать работу:

#rm(list = ls())
library(shiny)
library(DT)

ui <- basicPage(
  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)
  ) 
}
runApp(list(ui = ui, server = server))

Изображение 174551

  • 0
    Большое спасибо! Это сработало отлично.
  • 0
    Рад был помочь..
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню