2016-06-17 7 views
0

사용자 입력을 통해 DataTable에서 행을 선택하는 데 문제가 있습니다. 행 선택이 비 개발자 버전에서 작동하지 않기 때문에 나는 Shiny 및 DT의 dev 버전을 사용하고 있습니다. 특히 Shiny '0.13.2.9004'및 DT '0.1.56'을 사용하고 있습니다. 이 응용 프로그램을 고려해이 실행되면 그 selectRow의 기본 값이기 때문에사용자 입력에 응답하는 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) 

, testTable의 세 번째 행이 선택됩니다. 그러나 selectRow 값을 변경하면 testTable의 행 선택에 아무런 영향을주지 않습니다. 곤충? 아니면 내가 잘못하고있는거야?

답변

1

selected 옵션은 사전 선택에서만 작동합니다. 표를 만든 후 선택 항목을 업데이트하려면 dataTableProxyselectRows을 사용해야합니다. 서버 코드에 다음을 추가하십시오.

proxy = dataTableProxy("testTable") 

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