【问题标题】:Save what page of a data table I am on into a variable in R shiny将我所在的数据表的哪一页保存到 R Shiny 中的变量中
【发布时间】:2021-09-27 10:07:49
【问题描述】:

假设我有一个包含数据表的闪亮应用。

library(shiny)
library(tidyverse)
library(datasets)
library(DT)

data <- as.data.frame(USArrests)
#data<- cbind(state = rownames(data), data)
ui <- fluidPage(
    dataTableOutput("preview")
)

# Define server logic required to draw a histogram
server <- function(input, output) {

    output$preview<- renderDataTable(
        datatable(data, options = list(searching = T, pageLength = 10, lengthMenu = c(5,10,15, 20), scrollY = "600px", scrollX = T ))
    )
    
}

# Run the application 
shinyApp(ui = ui, server = server)

我希望能够将用户所在的表的哪一页保存在名为 x 的变量中。 有什么办法可以做到这一点吗?非常感谢任何帮助!

【问题讨论】:

标签: r shiny dt


【解决方案1】:
library(shiny)
library(DT)

data <- USArrests

callback <- c(
  "Shiny.setInputValue('pageNumber', 1);",
  "table.on('init.dt', function(){",
  "  var pageInfo = table.page.info();",
  "  Shiny.setInputValue('numberOfPages', pageInfo.pages);",
  "});",
  "table.on('page.dt', function(){",
  "  var pageInfo = table.page.info();",
  "  Shiny.setInputValue('pageNumber', pageInfo.page + 1);",
  "  Shiny.setInputValue('numberOfPages', pageInfo.pages);",
  "});",
  "table.on('length.dt', function(){",
  "  var pageInfo = table.page.info();",
  "  Shiny.setInputValue('pageNumber', pageInfo.page + 1);",
  "  Shiny.setInputValue('numberOfPages', pageInfo.pages);",
  "});"
  
)


ui <- fluidPage(
  br(),
  wellPanel(
    textOutput("displayPageNumber")
  ),
  br(),
  DTOutput("preview")
)

server <- function(input, output, session){
  
  output[["preview"]] <- renderDT(
    datatable(
      data, 
      callback = JS(callback),
      options = list(
        searching = TRUE, 
        pageLength = 5, 
        lengthMenu = c(5, 10, 15, 20), 
        #scrollY = "600px", 
        scrollX = TRUE)
    )
  )
  
  output[["displayPageNumber"]] <- renderText({
    paste(
      sprintf("You are currenly viewing page %s.", input[["pageNumber"]]),
      sprintf("There are %s pages in the table.", input[["numberOfPages"]])
    )
  })
  
}

# Run the application 
shinyApp(ui = ui, server = server)

【讨论】:

    猜你喜欢
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 2021-05-07
    相关资源
    最近更新 更多