删除"搜索"选项,但保留"搜索列"选项

Mar*_*rta 29 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)

    })

})
Run Code Online (Sandbox Code Playgroud)

ui.R

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

shinyUI(fluidPage(

    DT::dataTableOutput("tabelka")

))
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

Pew*_*ewi 32

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

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

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

无论如何,"f"是"过滤输入"选项(即搜索选项),通过将"f"移动到另一个div或省略它,我们可以四处移动或禁用搜索栏.您的问题的解决方案可能如下所示:

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

  • 为什么不在选项中使用`bFilter = 0`? (4认同)

Bry*_*yan 27

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

datatable(head(iris), options = list(dom = 't'), filter = list(position = "top"))
Run Code Online (Sandbox Code Playgroud)

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

datatable(head(iris), options = list(dom = 't'))
Run Code Online (Sandbox Code Playgroud)

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

datatable(head(iris), options = list(dom = 'ft'))
Run Code Online (Sandbox Code Playgroud)

资源:

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

  • 这可能会关闭比预期更多的功能,例如页面按钮. (9认同)
  • @wibeasley然后使用`“ tp”`打开分页。有关更多选项,请参见http://legacy.datatables.net/usage/options#sDom。 (2认同)

小智 9

datatable(iris, filter="top", selection="multiple", escape=FALSE,
options = list(searching = FALSE))
Run Code Online (Sandbox Code Playgroud)

  • 这将禁用搜索整个表,即它也会阻止列过滤器工作。正确的方法由 Yeahman269 解释如下 (2认同)

yea*_*269 5

您必须根据 的dom选项采取行动DT::datatable。以下对我来说很好用:

datatable(iris, filter="top", selection="multiple", escape=FALSE, options = list(dom = 'ltipr'))
Run Code Online (Sandbox Code Playgroud)

默认情况下DT::datatablehas dom = 'lftipr',只需删除'f'用于过滤器(“搜索”按钮)的 。

dom此处了解更多信息:https : //datatables.net/reference/option/dom