使用DT :: replaceData更新表时,有没有办法(除了colvis'按钮之外)动态更新DT :: datatabe中哪些列可见?
(我无法使用' colvis'按钮(如下所示:https://rstudio.github.io/DT/extensions.html)的原因是我需要一些隐藏和显示多个复杂模式的不同的快捷方便按钮马上。)
这是我如何启动我的应用程序的示例。有没有办法在js或服务器端隐藏和显示列?谢谢!
library(shiny)
library(DT)
shinyApp(
ui = fluidPage(
fluidRow(
column(2, actionButton('refresh', 'Refresh Data', icon = icon('refresh'))),
column(10, DT::dataTableOutput('foo'))
)
),
server = function(input, output, session) {
df = iris
n = nrow(df)
df$ID = seq_len(n)
loopData = reactive({
input$refresh
df$ID <<- c(df$ID[n], df$ID[-n])
df
})
output$foo = DT::renderDataTable(isolate(DT::datatable(loopData(),
options = list(
columnDefs = list(list(visible=FALSE,targets=c(0,1,2))))
)))
proxy = dataTableProxy('foo')
observe({
replaceData(proxy, loopData(), resetPaging = FALSE)
})
}
)