繁体   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