删除 'search' 选项但保留 'search columns' 选项
Remove 'search' option but leave 'search columns' option
我想从我的应用程序中删除 'global search' 选项,但保留 'column search' 选项。有任何想法吗?我已经尝试了不同的参数,例如 searching=FALSE, filtering='none'
... 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")
))
以及有助于理解我的问题的图片:
DT 选项需要作为列表传递。此外,通过使用 sDom 初始化变量,可以指定 DOM 控件的放置位置。标准设置如下所示:
datatable(iris, filter="top", selection="multiple", escape=FALSE,
options = list(sDom = '<"top">flrt<"bottom">ip'))
语法有点古怪,但基本上上面说的是 f、l、r 和 t 选项要放在顶部 div,i 和 p 选项放在底部 div.请参阅 http://legacy.datatables.net/usage/options 上的文档以获得更详尽的解释。
无论如何,"f" 是 "Filtering input" 选项(即搜索选项),通过将 "f" 移动到另一个 div 或省略它,我们可以移动或禁用它搜索栏。您的问题的解决方案可能如下所示:
datatable(iris, filter="top", selection="multiple", escape=FALSE,
options = list(sDom = '<"top">lrt<"bottom">ip'))
稍微简单的语法,对于仍在寻找的其他人:
datatable(head(iris), options = list(dom = 't'), filter = list(position = "top"))
其他选项。要仅显示 table,请使用 dom = 't':
datatable(head(iris), options = list(dom = 't'))
显示table和过滤(搜索框),默认设置:
datatable(head(iris), options = list(dom = 'ft'))
来源:
datatable(iris, filter="top", selection="multiple", escape=FALSE,
options = list(searching = FALSE))
您必须根据 DT::datatable
的 dom
选项采取行动。以下对我来说很好用:
datatable(iris, filter="top", selection="multiple", escape=FALSE, options = list(dom = 'ltipr'))
默认情况下 DT::datatable
有 dom = 'lftipr'
,只需删除过滤器的 'f'
("search" 按钮)。
在此处了解有关 dom
的更多信息:
https://datatables.net/reference/option/dom
根据@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"
),这个命令不适合你。
我想从我的应用程序中删除 'global search' 选项,但保留 'column search' 选项。有任何想法吗?我已经尝试了不同的参数,例如 searching=FALSE, filtering='none'
... 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")
))
以及有助于理解我的问题的图片:
DT 选项需要作为列表传递。此外,通过使用 sDom 初始化变量,可以指定 DOM 控件的放置位置。标准设置如下所示:
datatable(iris, filter="top", selection="multiple", escape=FALSE,
options = list(sDom = '<"top">flrt<"bottom">ip'))
语法有点古怪,但基本上上面说的是 f、l、r 和 t 选项要放在顶部 div,i 和 p 选项放在底部 div.请参阅 http://legacy.datatables.net/usage/options 上的文档以获得更详尽的解释。
无论如何,"f" 是 "Filtering input" 选项(即搜索选项),通过将 "f" 移动到另一个 div 或省略它,我们可以移动或禁用它搜索栏。您的问题的解决方案可能如下所示:
datatable(iris, filter="top", selection="multiple", escape=FALSE,
options = list(sDom = '<"top">lrt<"bottom">ip'))
稍微简单的语法,对于仍在寻找的其他人:
datatable(head(iris), options = list(dom = 't'), filter = list(position = "top"))
其他选项。要仅显示 table,请使用 dom = 't':
datatable(head(iris), options = list(dom = 't'))
显示table和过滤(搜索框),默认设置:
datatable(head(iris), options = list(dom = 'ft'))
来源:
datatable(iris, filter="top", selection="multiple", escape=FALSE,
options = list(searching = FALSE))
您必须根据 DT::datatable
的 dom
选项采取行动。以下对我来说很好用:
datatable(iris, filter="top", selection="multiple", escape=FALSE, options = list(dom = 'ltipr'))
默认情况下 DT::datatable
有 dom = 'lftipr'
,只需删除过滤器的 'f'
("search" 按钮)。
在此处了解有关 dom
的更多信息:
https://datatables.net/reference/option/dom
根据@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"
),这个命令不适合你。