可能很简单,但不知何故无法完成,在 Shiny 的 DT 中重置过滤器的最佳方法是什么?我有一个非常宽的表格,我不希望有人做一些过滤,忘记他们已经过滤了屏幕宽度之外的另一列 - 我宁愿有一个按钮来清除所有过滤器。改变 dom/打开/关闭过滤器是唯一的方法吗?抱歉,如果重复 - 我检查了存档但看不到它
虚拟应用程序来讨论它
library("shiny")
library("DT")
data(iris)
shinyApp(
ui = fluidPage( DT::dataTableOutput("tabel")
),
server = function(input,output,session){
output$tabel <- DT::renderDataTable({datatable(iris, filter="top")})
}
)
这个只有 5 列,所以你可以在每一列上单击 x 并重置,如果有 50 列那就不太容易了 - 并且如果不滚动到屏幕底部,你不知道你是否处于过滤器中
那又怎么样?翻转过滤器='无',过滤器='顶部'?或者有其他更好的方法吗?
最佳答案
好吧,答案并不是太难, 设置代理
proxy <-dataTableProxy('tabel')
并绑定(bind)到按钮
clearSearch(proxy)
如果您在过滤器定义中设置了 CLEAR=TRUE,它仍然会在搜索字段中留下讨厌的 x,但会清除过滤器并刷新内容而不重新加载内容
关于r - Shiny 的 DT 数据表 - 重置过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50003685/