我想在我的Shiny应用程序中为选定的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}"
但我还没有达到那个目标 - 不幸的是,上面的代码对背景颜色没有任何作用。如果有人能帮我找到完整的解决方案,那就太好了。
DT
包含一些内置函数,可用于更改字体颜色/背景颜色。请参见此处。 - Gregor de CilliadataTableProxy
,并在input$table_rows_selected
更改时更新样式。 - Gregor de CilliaformatStyle
的等效物。也许这种方法行不通。 - Gregor de Cillia