这个示例展示了如何选择一列(第 3 列),突出显示大于 100 的值以及突出显示大于 200 的值。
library("shiny")
library("shinydashboard")
library("datasets")
library("DT")
header <- dashboardHeader()
sidebar <- dashboardSidebar()
body <- dashboardBody(
DT::dataTableOutput("mtcarsTable")
)
shinyApp(
ui = dashboardPage(header, sidebar, body),
server = function(input, output) {
output$mtcarsTable <- renderDataTable({
DT::datatable(datasets::mtcars,
options = list(rowCallback = JS('
function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
// Bold and green cells for conditions
if (parseFloat(aData[3]) >= 200)
$("td:eq(3)", nRow).css("font-weight", "bold");
if (parseFloat(aData[3]) >= 100)
$("td:eq(3)", nRow).css("background-color", "#9BF59B");
}')
)
)
})
}
)
我正在寻找一种仅选择行而不是列的方法。例如,选择第 3、9、11 和 13 行并将这些行设置为黄色。如何修改上面的代码才能实现这一点?
不确定这是否是您要查找的内容,但下面的代码将以黄色突出显示“disp”(aData[3])列的值大于 200 的所有行。
'function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
if (parseFloat(aData[3]) >= 200)
$(nRow).css("background-color", "#ffff00");
}'
只需将其插入 rowCallback 部分即可。
或者,
编辑代码以删除列号:
$("td", nRow).css("background-color", "#9BF59B");