1

我有一个通过接口/创建并通过渲染的DataTableDT::datatableDT::renderDataTable

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

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

我想以下列方式使用该值(伪代码):

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

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

4

1 回答 1

1

您可以使用 访问用户选择的页面的长度input$tableId_state$length。您需要将stateSave选项设置TRUE为才能正常工作,请参见此处,第 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))
    })
  }
)

如果您需要此值用于其他用途,您始终可以将其存储在反应值中。

于 2016-01-04T12:19:31.730 回答