Remove 'search' option but leave 'search columns' option

只愿长相守 提交于 2020-07-13 23:52:44

问题


I would like to remove 'global search' option from my application, but leave 'column search' option. Any ideas? I've tried different paramethers like searching=FALSE, filtering='none'... None of this works properly.

My code:

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")

))

And picture which helps to understand my problem:


回答1:


DT options needs to be passed as a list. Further, by using the sDom initialisation variable it is possible to specify where in the DOM controls are placed. The standard setup looks like this:

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

The syntax is a bit quirky, but basically the above says that f, l, r and t options are to be placed in the top div with the i and p options in the bottom div. Please refer to the docs at http://legacy.datatables.net/usage/options for a more thorough explanation.

Anyways, "f" is the "Filtering input" option (i.e. the search option) and by moving "f" to another div or omitting it we may move around or disable the search bar. A solution to your problem might look like this:

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



回答2:


Slightly simpler syntax, for anyone else still looking:

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

Other options. To display table only, use dom = 't':

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

To display table and filter (search box), the default setting:

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

Source:

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




回答3:


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



回答4:


You have to act on the dom options of DT::datatable. The following works fine for me:

datatable(iris, filter="top", selection="multiple", escape=FALSE, options = list(dom = 'ltipr'))

By default DT::datatable has dom = 'lftipr', simply drop the 'f' which is for the filter ("search" button).

Learn more on dom here: https://datatables.net/reference/option/dom



来源:https://stackoverflow.com/questions/35624413/remove-search-option-but-leave-search-columns-option

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!