r - Shiny 的 DT 数据表 - 重置过滤器

标签 r datatable shiny dt

可能很简单,但不知何故无法完成,在 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/

相关文章:

r - 在 rCharts 中调整轴标签 NVD3 图形

R Shiny 选择选定的事件

r - 在 plot() 中用 for 循环创建的图的 yLab

c# - 如何从数据表中删除所有行

r - 不同大小矩阵的相同内存使用

javascript - 如何更改文本 "No data available in table"在数据表中的位置?

php - 如何使用一个布局页面制作多个页面? PHP

r - bsTooltip 中的数学模式 Shiny

r - 在字符串替换中避免 for 循环?

r - 如何将 R 数据框中的行转换为列?