【问题标题】:shiny DT datatable - reset filters闪亮的 DT 数据表 - 重置过滤器
【发布时间】:2018-10-04 20:00:01
【问题描述】:

可能很容易,但不知何故无法完成,在闪亮的 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 列并不那么容易 - 并且不滚动到屏幕底部,您不知道您是否处于过滤器中

那又怎样?翻转过滤器='无',过滤器='顶部'?还是有其他更好的方法?

【问题讨论】:

  • rstudio/DT#76(从 2015 年开始)表明 DT 本身不支持重置,建议的解决方法是重新渲染整个表格(对于大表格来说可能不是一个好的解决方案) .不知道最近有没有什么动作。

标签: r datatable shiny dt


【解决方案1】:

好的,答案并不太难, 设置代理

proxy <-dataTableProxy('tabel')

并绑定到一个按钮

clearSearch(proxy)

如果您在过滤器定义中有 CLEAR=TRUE,它仍然会在搜索字段中留下讨厌的 x,但会清除过滤器并刷新内容而不重新加载它

【讨论】:

    猜你喜欢
    • 2016-08-18
    • 2015-09-28
    • 2018-02-13
    • 2018-02-01
    • 2017-11-09
    • 2019-07-04
    • 2020-01-12
    • 2017-05-05
    • 2021-05-05
    相关资源
    最近更新 更多