R 数据表不会同时显示按钮和长度菜单

标签 r shiny dt

当您单击 DataTable 1 选项卡时,您可以在顶部看到长度菜单,这是该问题的要点。以 output$ex1 开头的位在服务器中对该数据表进行编码。

enter image description here

实际上,我希望有用于列可见性和下载数据的按钮。对 output$ex1 的一点修改通过添加 buttons争论
是必须的。然后,你最终得到 output$ex2 .但现在我想念长度菜单。

enter image description here

我想添加 pageLength = 5, lengthMenu = c(5, 10, 15, 20)output$ex2从以 output$ex3 开头的代码中可以看出将解决这个问题,我可以恢复长度菜单。但是第三个给了我和第二个完全一样的 table 。

enter image description here

1) 我怎样才能同时拥有按钮和长度菜单?

2) 如何安排按钮的位置?例如,我希望 colvis 的按钮位于下载按钮的上方。

3)当你查看下面的代码时,你会发现按钮中也包含了excel:buttons = c('colvis', 'copy', 'csv', 'excel', 'pdf', 'print')但是在最后 2 个表格中,您都看不到 Excel 按钮。
此外,我没有收到错误消息。

我将不胜感激任何帮助。

library(shiny)

ui <- navbarPage(
  title = 'DataTable Options',
  tabPanel('DataTable 1',  DT::dataTableOutput('ex1')),
  tabPanel('DataTable with Buttons 1',  DT::dataTableOutput('ex2')),
  tabPanel('DataTable with Buttons 2',  DT::dataTableOutput('ex3'))
)



server <- function(input, output) {


  output$ex1 <- DT::renderDataTable(
         DT::datatable(iris, 
              class = 'cell-border stripe', 
              filter = 'top',
              options = list(autoWidth = TRUE)))



  output$ex2 <- DT::renderDataTable(
         DT::datatable(iris, 
              class = 'cell-border stripe', 
              filter = 'top', extensions = 'Buttons', 
              options = list(autoWidth = TRUE, 
                             dom = 'Bfrtip', 
                             buttons = c('colvis', 'copy', 'csv', 'excel', 
                                         'pdf', 'print'))))


   output$ex3 <- DT::renderDataTable(
      DT::datatable(iris, 
              class = 'cell-border stripe', 
              filter = 'top', extensions = 'Buttons', 
              options = list(autoWidth = TRUE, 
                             pageLength = 5, lengthMenu = c(5, 10, 15, 20), 
                             dom = 'Bfrtip', 
                             buttons = c('colvis', 'copy', 'csv', 'excel', 
                                         'pdf', 'print'))))


  }


  shinyApp(ui = ui, server = server)

最佳答案

您需要在 dom 中添加“l”(小写字母“L”),这使得 Blfrtip:

B - 按钮

l - 变长输入控制

f - 过滤输入

r - pProcessing 显示元素

t - 表

i - 表信息汇总

p - 分页控制

这些功能可以使用以下命令定位:

"dom": "<'row'<'col-md-3'B><'col-md-6'l><'col-md-3'f>><'row'<'col-md-12't>><'row'<'col-md-3'i><'col-md-6'><'col-md-3'p>>"

就像我们在 Bootstrap 中所做的一样。

关于R 数据表不会同时显示按钮和长度菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52645959/

相关文章:

r - R Shiny 中的渐变色数据表行

将某些变量替换为 NA,其中一个变量为 NA

javascript - 交互式数据表 : keep column filters after rerendering the table

r - 二次形式的公式运算

html - 使用 CSS 使仪表板框标题加粗

r - 在 R Shiny 中渲染时如何将表格单元格扩展到多列?

r - 使用桥接适配器在虚拟机上配置我的 Shiny 服务器时出现问题

R Shiny 数据表 : Format numbers not by column but by row

r - gvisTables 未在 Shiny 应用程序中呈现

r - 如何使用 RVEST 从类(class)中抓取标题?