当您单击 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)
Run Code Online (Sandbox Code Playgroud)
小智 8
您需要在 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>>"
Run Code Online (Sandbox Code Playgroud)
就像我们在 Bootstrap 中所做的一样。
要同时显示按钮和长度菜单,您必须dom将'Blfrtip'.
output$ex2 <- DT::renderDataTable(
DT::datatable(iris,
class = 'cell-border stripe',
filter = 'top', extensions = 'Buttons',
options = list(autoWidth = TRUE,
dom = 'Blfrtip',
buttons = c('colvis', 'copy', 'csv', 'excel', 'pdf', 'print'))))
Run Code Online (Sandbox Code Playgroud)
如果您在 Chrome 中打开您的应用程序,您可以看到该excel按钮。根据此链接,这是数据表的问题之一。
为了定位按钮,您很可能必须对它们的 HTML 标签进行更改;沿着线的东西这个。