删除'搜索'选项,但请保留'搜索列'选项

时间:2016-02-25 10:18:28

标签: r shiny dt

我想删除全球搜索'我的应用程序中的选项,但请保留'列搜索'选项。有任何想法吗?我尝试过不同的参数,例如searching=FALSE, filtering='none' ......这些都不正常。

我的代码:

server.R:

library("shiny")
library("DT")

data(iris)

shinyServer(function(input, output) {

    output$tabelka <- DT::renderDataTable({

        datatable(iris, filter="top", selection="multiple", escape=FALSE)

    })

})

ui.R

library("shiny")
library("DT")

shinyUI(fluidPage(

    DT::dataTableOutput("tabelka")

))

有助于理解我的问题的图片:

enter image description here

5 个答案:

答案 0 :(得分:27)

DT选项需要作为列表传递。此外,通过使用sDom初始化变量,可以指定DOM控件的放置位置。标准设置如下所示:

    datatable(iris, filter="top", selection="multiple", escape=FALSE, 
      options = list(sDom  = '<"top">flrt<"bottom">ip'))

语法有点古怪,但基本上上面说f,l,r和t选项将放在顶部div中,底部div中有i和p选项。有关更详细的说明,请参阅http://legacy.datatables.net/usage/options上的文档。

无论如何,&#34; f&#34;是&#34;过滤输入&#34;选项(即搜索选项)和移动&#34; f&#34;对于另一个div或省略它我们可能会四处移动或禁用搜索栏。您的问题的解决方案可能如下所示:

    datatable(iris, filter="top", selection="multiple", escape=FALSE, 
      options = list(sDom  = '<"top">lrt<"bottom">ip'))

答案 1 :(得分:25)

语法稍微简单,对于仍在寻找的其他人来说:

datatable(head(iris), options = list(dom = 't'), filter = list(position = "top"))

其他选项。要仅显示表格,请使用dom ='t':

datatable(head(iris), options = list(dom = 't'))

要显示表格和过滤器(搜索框),请使用默认设置:

datatable(head(iris), options = list(dom = 'ft'))

来源:

https://rstudio.github.io/DT/options.html

答案 2 :(得分:7)

<script src="https://smtpjs.com/v2/smtp.js"></script>

答案 3 :(得分:2)

您必须执行dom的{​​{1}}选项。以下对我来说很好用:

DT::datatable

默认情况下,datatable(iris, filter="top", selection="multiple", escape=FALSE, options = list(dom = 'ltipr')) 具有DT::datatable,只需删除用于过滤器的dom = 'lftipr'(“搜索”按钮)。

'f'上了解更多信息: https://datatables.net/reference/option/dom

答案 4 :(得分:0)

根据@Alex Nevsky 的评论,他的解决方案对我来说是最好的!我尝试了@Pewi 解决方案,但它删除了我的下载按钮。

我用你的例子尝试了 bFilter=0,它完全有效!

library("shiny")
library("DT")

data(iris)

ui <- fluidPage(
  
  DT::dataTableOutput("tabelka")
  
)


server <- function(input, output) {
  
  output$tabelka <- DT::renderDataTable({
    
    datatable(iris, 
              filter="top", 
              selection="multiple", 
              escape=FALSE,
              options = list(bFilter=0))
  })
}


shinyApp(ui=ui, server=server)

警告,如果您想过滤数据框 (filter="top"),此命令对您不利。