查询嵌入闪亮应用程序中的数据表的状态/属性

时间:2015-12-31 15:46:19

标签: javascript r datatables shiny dt

我通过DataTable创建了DT::datatable接口/通过DT::renderDataTable呈现。

如何查询数据表的状态/属性以便将其用于设计反应式UI组件?

对于特定示例:如何查询用户选择的iDisplayLength属性的值(AFAIU,控制显示的元素/行数)?

我想以下列方式使用该值(PSEUDO CODE):

if (iDisplayLength != "All") {
  do not enable vertical scrolling
} else {
  enable vertical scrolling
}

由于垂直滚动部分,问题与this one有些相关,您可以在其中找到实际示例。

1 个答案:

答案 0 :(得分:1)

您可以使用input$tableId_state$length访问用户选择的页面长度。您需要将stateSave选项设置为TRUE才能生效,请参阅here,第2.2节。

这是一个最小的例子:

library(shiny)
shinyApp(
  ui = fluidPage(textOutput("pageLength"),
  DT::dataTableOutput('tbl'))
  ,
  server = function(input, output) {
    output$tbl = DT::renderDataTable(
      iris,options=list(stateSave=TRUE)
    )
    output$pageLength = renderText(paste("Lenght of the pages:",input$tbl_state$length))
    })
  }
)

如果您需要此值,则可以始终将其存储在无效值中。