如何在R闪亮的顶部放置renderDataTable的过滤器

时间:2014-03-24 22:52:18

标签: r datatables shiny

我在R& D中使用renderDataTable有光泽地呈现我的数据,但过滤器位于表格的底部。有没有办法把它放在桌子的顶部?提前谢谢!

BTW,我在哪里可以找到renderDataTable的选项列表?

  mainPanel(
    tabsetPanel(
      tabPanel("Table",tableOutput("values")),
      tabPanel("Tree Plot",plotOutput("plot")),
      tabPanel("Segment Data",dataTableOutput("obs"))

我不熟悉CSS,有人可以给我一些关于如何在R函数内编辑CSS的建议吗?

3 个答案:

答案 0 :(得分:8)

另一种选择是修改CSS。用这一行

tags$head(tags$style("tfoot {display: table-header-group;}"))

你把它放到你的ui.R文件中就像这样

,tabPanel("MeSH"          ,tags$head(tags$style("tfoot {display: table-header-group;}"))
    ,fluidRow( ...

答案 1 :(得分:3)

这个:How to place DataTables column filter on top:可以帮助您修改CSS以使过滤器位于顶部。

您可以在此处查看:https://github.com/rstudio/shiny-examples/blob/master/012-datatables/server.R:了解如何使用renderDataTable选项,您应该能够看到这些选项的设置方式与options list之间的相关性jQuery DataTables。

答案 2 :(得分:0)

我对css知之甚少,而且我更喜欢从核心脚本中尽可能多地做到这一点,我不需要担心以后在这里或那里更改化妆品。所以我使用以下方法设置" filter =' top'"在服务器上调用renderDataTable()时。根本不需要CSS。

mainPanel("Data",
           dataTableOutput("datatbl")) 

server.R

# create data table output
output$datatbl <- DT::renderDataTable(

  #data
  dt2(), rownames = FALSE,

  # column filter on the top
  filter = 'top', server = TRUE,

  # autoWidth
  options = list(autoWidth = TRUE))

请注意,我只使用renderDataTable()来调用函数,在函数中使用参数我们无法将其写为{}中的编程代码,我猜。让我知道它是否适合你。