隐藏Shiny DT数据表中的过滤器

时间:2018-06-30 23:43:40

标签: shiny dt

在闪亮的应用程序中,我正在使用DT包创建数据表。我启用了列过滤器,但是,我想隐藏过滤器框的行。我在数据表之外有单独的闪亮小部件,这些小部件将充当过滤器,并通过searchCols选项将其传递给数据表。禁用列过滤器会隐藏过滤器框的行,但是searchCols选项不起作用。

运行应用程序并检查元素时,我看到要删除的行称为 ... 。如果右键单击它,然后单击“删除元素”,则该行消失,数据表看起来像我想要的那样,外部过滤器按预期工作。我也可以通过在element.style css中添加“ display:none”来实现。我的问题是,如何在呈现数据表时告诉应用删除该行?

我不确定我可以提供哪种可重现的代码,但是这里有一些屏幕截图可以使我更清楚地知道要做什么。

我想删除所有过滤器框及其所在的行,以使数据位于列标题的正下方,就像未启用过滤器一样。 enter image description here

如果我检查应用程序并删除突出显示的元素或添加“ display:none”,则该行将被隐藏。呈现数据表时,如何自动进行此操作? enter image description here

1 个答案:

答案 0 :(得分:1)

我不知道这是否适用于您的窗口小部件,但是您可以尝试使用display选择器和子选择器来设置样式表中的id属性:

library(shiny)
library(DT)

ui <- fluidPage(
  tags$style("#mydatatable thead > tr:nth-child(2) {display:none;}"),
  mainPanel(
    dataTableOutput("mydatatable")
  )
)

server <- function(input, output) {

  output$mydatatable <- DT::renderDataTable(
    datatable(iris, filter = 'top', options = list(
              pageLength = 5, autoWidth = TRUE)
    )
  )

}

shinyApp(ui = ui, server = server)