renderDataTable颜色预选行

时间:2016-07-31 03:56:01

标签: r datatable shiny shinydashboard

这是一个示例,显示如何选择列(第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行并将这些行着色为黄色。任何帮助如何修改上面的代码以实现这一点非常感谢。提前谢谢。

1 个答案:

答案 0 :(得分:0)

不确定这是否是您要查找的内容,但下面的代码将以黄色突出显示&#34; disp&#34;的值的所有行。 (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");