闪亮的DataTable行选择响应用户输入

时间:2016-06-17 19:21:37

标签: shiny row selection user-input dt

我在通过用户输入选择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中的行选择没有任何影响。错误?或者我做错了什么?

1 个答案:

答案 0 :(得分:2)

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

proxy = dataTableProxy("testTable")

observeEvent(input$selectRow, {
    selectRows(proxy, as.numeric(input$selectRow))
})