【问题标题】:How do I change the selected rows of a DT::dataTable on server-side? How do make it jump to the correct view?如何在服务器端更改 DT::dataTable 的选定行?如何让它跳转到正确的视图?
【发布时间】:2023-02-10 21:21:36
【问题描述】:

我想输出一个数据表并预选一行。此行的数字可以大于 10,在这种情况下我希望它显示在数据表中。我读过你可以使用 dataTableProxy 但它不会跳转到正确的行。是否有捷径可寻?

这是一个最小的例子:

library(shiny)

ui <- fluidPage(
  DT::dataTableOutput("dtout")
)

server <- function(input, output, session) {
  output$dtout<- DT::renderDT(iris)
  dtproxy<-DT::dataTableProxy(session = session,outputId = "dtout")
  DT::selectRows(dtproxy,14)
}

shinyApp(ui, server)

这是结果:

这是我想直接显示的内容:

有简单的方法吗?

【问题讨论】:

    标签: r shiny dt


    【解决方案1】:

    您可以通过使用选择扩大。但是你得事先知道要显示的页数(也许有办法自动获取,我不知道)。

    library(DT)
    
    callback <- "
    table.row(':eq(13)', {page: 'all'}).select(); // select row 13+1
    table.page(1).draw('page');                   // jump to page 1+1
    "
    datatable(
      iris,
      extensions = "Select", selection = "none",
      callback = JS(callback)
    )
    

    【讨论】:

      猜你喜欢
      • 2017-04-01
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 2023-03-12
      相关资源
      最近更新 更多