【问题标题】:How to put filter of renderDataTable at the top in R shiny如何将renderDataTable的过滤器放在R闪亮的顶部
【发布时间】:2014-05-02 13:36:00
【问题描述】:

我在 R & Shiny 中使用 renderDataTable 来展示我的数据,但过滤器位于表格底部。有没有办法把它放在桌子的顶部?提前致谢!

顺便说一句,在哪里可以找到renderDataTable的选项列表?

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

我不熟悉 CSS,谁能给我一些关于如何在 R 函数中编辑 CSS 的建议?

【问题讨论】:

    标签: r datatables shiny


    【解决方案1】:

    另一个选项是修改 CSS。用这条线

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 谢谢!我不熟悉 CSS,我在哪里可以在 R 函数中编辑它?
      • 我无法在我的闪亮页面中复制它。我需要向选项列表传递什么?
      【解决方案3】:

      我对 css 知之甚少,我更喜欢从核心脚本中做尽可能多的事情,这样我就不必担心以后在此处或那里对外观进行更改。所以我在服务器上调用 renderDataTable() 时通过设置“filter = 'top'”来使用以下方法。完全不需要 CSS。

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

      服务器.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() 来调用函数,在函数中使用参数我们不能将其编写为 {} 中的编程代码,我猜。让我知道它是否适合你。

      【讨论】:

      • 忘了说,dt2() 只是我在自己的项目中创建的一个响应式对象,您可以使用预加载的数据集进行测试,例如mtcar、iris 等
      猜你喜欢
      • 2014-07-06
      • 2018-07-30
      • 2019-05-03
      • 2019-03-20
      • 2016-01-02
      • 2020-12-26
      • 2018-05-02
      • 2020-09-18
      • 1970-01-01
      相关资源
      最近更新 更多