Когда вы нажимаете вкладку 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)