2017-04-23 61 views
0

我嘗試使用DT動態預先選擇有光澤的行,並看到此問題/答案:Pre-select rows of a dynamic DT in shiny 但是,我確實需要使用智能列過濾器進行DT的「原生」外觀。動態預先選擇使用有光澤的DT的行

這裏是我的代碼:

library(shiny) 
library(DT) 

shinyApp(
    ui=shinyUI(
     fixedPage(
      radioButtons('selectedRows', 
         'select a row', 
         c(
         "row one"="1", 
         "row two"="2")), 
      DT::dataTableOutput('myTable') 
     ) 
    ) 
, 

server=shinyServer(function(input, output) { 

    selRows <- reactiveValues(row=c()) 

    observe({ 
     validate(need(input$selectedRows, message=FALSE)) 
     selRows$row <- as.numeric(input$selectedRows) 
    }) 

    output$myTable <- DT::renderDataTable ({ 
              mtcars[,1:5] 
              },server=T, 
              rownames = T, 
              filter = "top", 
              selection = list(mode='multiple', 
                  selected = selRows$row)) 

    }) 
) 

謝謝!

+0

當你說「動態預選」你只是說「從其他輸入選擇」?或者,這是一個關於初始化表格的問題嗎? – MrHopko

+0

感謝您的評論。我的意思是'從另一個輸入中選擇',如上例中輸入$ selectedRows所示。當我給selRows $行修正值時,例如1,表格被預先選擇的第一行正確初始化。 – ChriiSchee

回答

1

這是寫在另一個帖子中datatable()包裝它,然後它工作:)

output$myTable <- DT::renderDataTable ({ 
    datatable(
    mtcars[,1:5], 
    rownames = T, 
    filter = "top", 
    selection = list(mode='multiple', 
        selected = selRows$row) 
) 
})