簡體   English   中英

閃亮的DT:selectColumns不起作用?

[英]Shiny DT: selectColumns not working?

我有以下示例應用程序(下面的代碼)。 這個想法是,如果用戶選擇第二列(索引為1),那么選擇將轉到第三列(索引為2),因為我根本不希望用戶選擇第二列(因為據我所知,沒有內置的方法可以阻止用戶選擇DT中的特定列)。

問題在於,雖然selectRows(tableProxy, c(2)起作用(行選擇的簡單示例),但是selectColumns(tableProxy, c(2))僅取消選擇當前選定的列,而不選擇第三列。

我的語法是否有問題,或者這是一個錯誤? 如果是錯誤,是否有解決方法?

可重現的示例:

library(shiny)

# Define UI for application that draws a histogram
ui <- fluidPage(

  fluidRow(
    tags$div(title = "Iris table",
             DT::dataTableOutput("irisTable"))
  )
)

# Define server logic required to draw a table
server <- function(input, output) {

  output$irisTable <- DT::renderDT(datatable(head(iris, 20), options = list(paging = FALSE, searching = FALSE),
  rownames = FALSE, 
  selection = list(target = 'row+column', mode='single', selected = list(rows = c(NULL), cols = c(2)))
  ) %>% 
    formatStyle(0, target= 'row',color = 'black', 
                lineHeight='70%', padding = '3px 3px', fontSize = '80%')
  )

  tableProxy <- dataTableProxy("irisTable")

  observeEvent(input$irisTable_columns_selected, {
    if (input$irisTable_columns_selected == 1) {
      #tableProxy %>% selectColumns(2)
      selectRows(tableProxy, c(2))
      selectColumns(tableProxy, c(2))
    }
  })
}

# Run the application 
shinyApp(ui = ui, server = server)

更新:我已經嘗試過使用此處發布的示例代碼進行上述操作(轉換為可用於單個文件Shiny應用程序),但我遇到了同樣的問題。 我已經重新安裝了DT軟件包,但無法解決問題。

這是DT的錯誤,應該通過PR rstudio / DT#528修復 您可以通過調用devtools::install_github("rstudio/DT")來安裝開發版本以對其進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM