2017-04-23 60 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) 
) 
})