r - R DataTables 不会同时显示按钮和长度菜单
问题描述
当您单击 DataTable 1 选项卡时,您可以在顶部看到长度菜单,这是该问题的重点。服务器中以开头的位output$ex1
编码此数据表。
实际上,我希望有用于列可见性和下载数据的按钮。output$ex1
需要对通过添加buttons
参数进行一些修改。然后,你最终得到output$ex2
. 但现在我想念长度菜单。
我认为添加pageLength = 5, lengthMenu = c(5, 10, 15, 20)
到output$ex2
开头的代码中可以看到的内容output$ex3
可以解决这个问题,我可以恢复长度菜单。但是第三个返回给我的表与第二个完全相同。
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 - 处理显示元素
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 中做的一样。
推荐阅读
- xcode - 无法获得源代码的真实路径 - Xcode、SFML、C++
- ios - 更改签名证书后重新启动 App Store 上的现有 iOS 应用程序?
- c - 为什么会出现分段错误 11(使用 fgets 读取输入并存储在数组中)?
- python - 在服务器而不是本地机器上处理 MemoryError
- r - 使用 dplyr 如何将分组数据除以与之关联的特定值
- apache-flink - Apache Flink:架构问题:背压和处理故障模式
- perl - 如何在 Perl 中一个一个地 gzip 几个文件
- java - 在 stage.show() 之后将子项添加到窗格
- automated-tests - 赛普拉斯 - 让 1 个测试调用另一个测试并运行它
- eclipse - Eclipse Tomcat 在部署目录中看不到文件