首页 > 解决方案 > 在 DT 数据表选项中写入 If 条件?

问题描述

抱歉无法提供可重现的示例,但以下是我的数据表的选项。基本上,如果按下屏幕截图按钮 - 我不希望启用滚动功能 - 否则应该启用它。感谢您的任何帮助或建议!if 语句最初评估为 false,但默认情况下仍禁用滚动功能。

还有,有人知道生命的意义吗?

 ` options = list(dom = 't', paging = FALSE, ordering = FALSE, 
                               #pageLength = -1, 
                               if(input$screenshot > 0){
                                 scrollY=NULL
                               } else {
                                 scrollY='50vh'
                               }
                               , scrollCollapse = TRUE`

标签: shinydtshinyapps

解决方案


把事情简单化。将您的if条件写在 DT 渲染器之外,在观察者内部写​​入反应变量。此外,我建议您不要使用操作按钮进行屏幕截图,而是使用切换按钮。这将允许您启用和禁用滚动,而不是完全禁用它。

# You initialize the table with scrolling enabled
react <- reactiveValues(scrollCondition="50vh")

# Toggle button returns TRUE when enabled and FALSE when disabled. So when screenshots are set to TRUE, we make the scrollY property NULL.
observeEvent(input$screenshot,{
       if(input$screenshot==TRUE){
                 react$scrollCondition <- NULL
       }else{
                 react$scrollCondition <- "50vh'"
       }
})


`options = list(dom = 't', paging = FALSE, ordering = FALSE, 
                               scrollY= react$scrollCondition, 
                               scrollCollapse = TRUE`

希望这可以帮助。


推荐阅读