渲染数据表颜色预选行

问题描述 投票:0回答:1

这个示例展示了如何选择一列(第 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 行并将这些行设置为黄色。如何修改上面的代码才能实现这一点?

r shiny dt
1个回答
0
投票

不确定这是否是您要查找的内容,但下面的代码将以黄色突出显示“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");
© www.soinside.com 2019 - 2024. All rights reserved.