【问题标题】:Shiny DataTable row selection responding to user input响应用户输入的闪亮 DataTable 行选择
【发布时间】:2016-06-17 19:21:36
【问题描述】:

我在通过用户输入选择 DataTable 中的行时遇到问题。我正在使用 Shiny 和 DT 的开发版本,因为行选择在非开发版本中不起作用。具体来说,我使用的是 Shiny '0.13.2.9004' 和 DT '0.1.56'。考虑这个应用程序:

library(DT)
library(shiny)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      textOutput('row'),
      numericInput('selectRow', 'selectRow', 3)
    ),
    mainPanel(
      DT::dataTableOutput('testTable')
    )
  )
)

server <- function(input, output, session) {
  output$testTable <- DT::renderDataTable(iris,
                                          selection = list(mode = 'single',
                                                           target = 'row',
                                                           selected = as.character(input$selectRow)),
                                          server = TRUE)
}

shinyApp(ui = ui, server = server)

当它运行时,testTable 的第三行被选中,因为这是selectRow 的默认值。但是更改selectRow 的值对testTable 中的行选择没有任何影响。漏洞?还是我做错了什么?

【问题讨论】:

    标签: shiny row selection user-input dt


    【解决方案1】:

    selected 选项仅适用于预选。要在创建表后更新选择,您需要使用dataTableProxyselectRows。将以下内容添加到您的服务器代码中。

    proxy = dataTableProxy("testTable")
    
    observeEvent(input$selectRow, {
        selectRows(proxy, as.numeric(input$selectRow))
    })
    

    【讨论】:

      猜你喜欢
      • 2016-10-18
      • 2020-08-01
      • 2015-05-06
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 2020-07-04
      • 2017-11-24
      相关资源
      最近更新 更多