【发布时间】:2020-09-04 17:47:22
【问题描述】:
我有一个应用程序,它有一个启用了行选择的 DT 表。是否可以在不重新渲染的情况下在禁用和启用整个表格之间切换?使用shinyjs::disable 和shinyjs::enable 将禁用和启用表格中用于过滤的文本框,但不能选择行。我也不知道有任何 DT 代理方法可以完成我正在尝试做的事情。
library(shiny)
library(DT)
library(shinyjs)
ui <- fluidPage(
DTOutput("table"),
actionButton(inputId = "disable",
label = "Disable"),
actionButton(inputId = "enable",
label = "Enable"),
useShinyjs()
)
server <- function(input, output, session) {
output$table <- renderDT({
data <- data.frame(COL_1 = c(1, 2, 3, 4),
COL_2 = c("A", "B", "C", "D"),
stringsAsFactors = FALSE)
datatable(data,
escape = FALSE,
filter = list(position = "top"),
rownames = FALSE)
})
observeEvent(input$disable, {
disable(id = "table")
})
observeEvent(input$enable, {
enable(id = "table")
})
}
shinyApp(ui = ui, server = server)
【问题讨论】: