【问题标题】:Datatable button is disappearing based on what table is loaded first根据首先加载的表,数据表按钮正在消失
【发布时间】:2018-02-19 10:23:03
【问题描述】:

我的闪亮应用程序中有两个数据表,它们位于不同的选项卡中。其中一个具有用于列选择和导出到 xlsx 的按钮,另一个仅用于列选择。 启动应用程序后,如果我转到带有数据表的选项卡,该选项卡首先只有一个按钮,而不是第二个按钮,则第二个不再具有导出到 xlsx 按钮。但是,如果我先使用两个按钮访问数据表,然后再访问另一个按钮,那么这两个数据表都有他们应该拥有的按钮。关于如何解决这个问题的任何想法?

library(shiny)
library(shinydashboard)
library(DT)
library(dplyr)

# Define UI for app that draws a histogram ----
ui <- dashboardPage(
    dashboardHeader(title = "Basic dashboard"),
    dashboardSidebar(
        sidebarMenu(
            menuItem('intro', tabName = 'intro'),
            menuItem('df1', tabName = 'df1'),
            menuItem('df2', tabName = 'df2')
        )),
  dashboardBody(
      tabItems(
          tabItem('intro', 'Hello'),
          tabItem(tabName = 'df1',
                  sliderInput('horsepower', label = 'horsepower', min = min(mtcars$hp), max = max(mtcars$hp), value = c(min(mtcars$hp), max(mtcars$hp))),
                  dataTableOutput('dt1t')
          ),
          tabItem(tabName = 'df2',
                  dataTableOutput('dt2t')
                  )
          )
  )
)

server <- function(input, output) {

  output$dt1t <- renderDataTable({

        mtcars %>% 
            filter(hp >= input$horsepower[[1]], hp <= input$horsepower[[2]]) %>% 
            datatable(extensions = c('Scroller', 'Buttons'), options = list(
            dom = 'Bt',
            buttons = list('colvis', list(extend = 'excel', text = 'Export to xlsx')),
            scroller = T,
            scrollY = 500,
            scrollX = T),
            escape = F,
            selection = 'single',
            rownames = F)

})

output$dt2t <- renderDataTable({

    iris %>% 
        datatable(extensions = c('Scroller', 'Buttons'), options = list(
            dom = 'Bt',
            buttons = list('colvis'),
            scroller = T,
            scrollY = 500,
            scrollX = T),
            escape = F,
            selection = 'single',
            rownames = F)

})



}

shinyApp(ui = ui, server = server)

【问题讨论】:

  • 我无法重现该问题,对我来说,无论我如何到达该选项卡,导出按钮都保持不变
  • 这很奇怪。你有什么版本的包?我有 shiny_1.0.5、DT_0.2 和 shinydashboard_0.6.1。
  • 我的包版本和你一样,同样的问题。
  • 同样的包,讽刺的是,我在 IE 上测试它工作正常 :) 问题出在 Chrome 上。

标签: r datatables shiny


【解决方案1】:

这个错误似乎已在 923545 中被修复,这是 DataTables 库和一些扩展的更新。我猜这是 Buttons 扩展中的一个错误(从 1.2.0 to 1.4.1 升级),但不完全确定。

所以将 DT 更新到 0.2.15 或更高版本,问题应该就消失了。您可以通过运行devtools::install_github("rstudio/DT@923545") 获得 0.2.15,或者从 CRAN 安装最新版本,或者在 GitHub 上安装最新的开发版本。


注意:要重现该问题,您可以通过运行 devtools::install_github("rstudio/DT@b2c0c9") 来安装 DT 0.2.14

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 2022-10-16
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 2012-09-27
    相关资源
    最近更新 更多