我通过DataTable创建了DT::datatable
接口/通过DT::renderDataTable
呈现。
如何查询数据表的状态/属性以便将其用于设计反应式UI组件?
对于特定示例:如何查询用户选择的iDisplayLength
属性的值(AFAIU,控制显示的元素/行数)?
我想以下列方式使用该值(PSEUDO CODE):
if (iDisplayLength != "All") {
do not enable vertical scrolling
} else {
enable vertical scrolling
}
由于垂直滚动部分,问题与this one有些相关,您可以在其中找到实际示例。
答案 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))
})
}
)
如果您需要此值,则可以始终将其存储在无效值中。