观察数据表分页事件Shiny
问题描述:
每当用户更改数据集页分页时,都需要更改输入值。观察数据表分页事件Shiny
我试过使用观察事件,但它不起作用。
UI
fluidRow(
column(10,
""
),
column(2,
textInput("inText", "Input text 2", value = "Default text")
),
column(12,
dataTableOutput('table')
)
)
服务器
observeEvent(input$table, {
updateTextInput(session, "inText", value = paste("New text",0))
})
希望你能帮助我。
答
假设你的表ID是table
在您的例子给出,你可以使用: input$table_state$start/input$table_state$length + 1
。
在下面一个完整的例子:
library(DT)
library(shiny)
app <- shinyApp(
ui = fluidPage(
tags$head(
# hides the default search functionality
tags$style(
HTML(".dataTables_filter, .dataTables_info { display: none; }")
)
),
fluidRow(
column(10,
""
),
column(2,
# adding new page filter
uiOutput("pageFilter")
),
column(12,
dataTableOutput('table')
)
)
),
server = function(input, output) {
output$pageFilter <- renderUI({
val <- input$table_state$start/input$table_state$length + 1
numericInput("page", "Page", val, min = 1)
})
output$table <- DT::renderDataTable({
iris
}, options = list(pageLength = 5, stateSave = TRUE))
# using new page filter
observeEvent(input$page, {
dataTableProxy("table") %>% selectPage(input$page)
})
}
)
runApp(app, launch.browser = TRUE)
是它涉及到另一个问题:那将分页的变化,由于输入字段,或者它可能是也引发“正常”的分页按钮? – BigDataScientist
我试图做的是分页可以通过分页按钮和输入正常更改。但是,如果我通常更改它,我希望输入刷新到新页面。 – JFernandez
好的,那么你应该使用'input $ table_state',它将包含分页信息,... – BigDataScientist