是否可以在禁用和启用DT表之间进行切换?

问题描述 投票:1回答:2

我有一个应用,其中的DT表已启用行选择。是否可以在禁用和启用整个表之间切换而不重新呈现它?使用shinyjs::disableshinyjs::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)
r shiny dt shinyjs
2个回答
0
投票

似乎没有proxy method可以满足您的需求,因此您必须重新呈现表。


0
投票

我发现可以通过在数据表的event.stopPropagation()元素内使用tbody来完成此操作。

© www.soinside.com 2019 - 2024. All rights reserved.