Я пытаюсь установить цвет выделения для выбранной строки в 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}"
Но я еще не добрался - к сожалению, код выше ничего не делает для цвета фона. Если бы кто-нибудь мог помочь мне со всем решением, которое было бы здорово.
Это должно сделать работу:
#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))
DT
есть несколько встроенных функций для изменения цвета шрифта / фона. Смотри здесь