2016-06-17 15 views
0

ユーザー入力を介してDataTableの行を選択する際に問題が発生しています。私は行の選択が非devのバージョンで動作していないので、ShinyとDTの開発版を使用しています。具体的には、Shiny '0.13.2.9004'とDT '0.1.56'を使用しています。このアプリを考えてみましょう:ユーザー入力に応答するShiny DataTable行の選択

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) 

それが実行されるとそれはselectRowのデフォルト値だから、testTableの三行が選択されています。しかし、selectRowの値を変更すると、testTableの行選択に何も反映されません。バグ?または私は何か間違っているのですか?

答えて

1

selectedオプションは、事前選択にのみ使用できます。テーブルを作成した後に選択を更新するには、dataTableProxyselectRowsを使用する必要があります。サーバーコードに以下を追加してください。

proxy = dataTableProxy("testTable") 

observeEvent(input$selectRow, { 
    selectRows(proxy, as.numeric(input$selectRow)) 
}) 
関連する問題