Изменение размера DataTable внутри бокса в ShinyDashboard - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь поместить некоторые таблицы данных и гистограммы в поля определенной высоты в Shiny Dashboard, проблема в том, что когда я фиксирую высоту (скажем, 250), таблица данных выходит за пределы.

Я знаю, что у нас есть «autowidth» для использования с таблицами данных, но мы не видели ничего подобного для высоты. Я тоже пытался зафиксировать высоту данных, но мне это тоже не помогло. Кроме того, когда я открываю блестящий экран меньшего размера, размер окна изменяется, а данные - нет.

Вот пример проблемы

library(shiny)
library(shinydashboard)
library(htmltools)


ui <- dashboardPage(skin = "black", title = "Dashboard",
                    dashboardHeader(title = "Dashboard"),
                    dashboardSidebar(width = 300),

                    dashboardBody(

                      tags$head(tags$style(HTML("
                                            div.box {
                                            text-align: center;
                                            border-style: solid;
                                            border-bottom-color:red;
                                            border-left-color:red;
                                            border-right-color:red;
                                            border-top-color:red;
                                            border-bottom-width:20px;
                                            border-top-width:20px;   
                                            border-left-width:20px;
                                            border-right-width:20px;
                                            }
                  "))),


                      box(title = "Resume", width = 4, column(12, withSpinner(DT::dataTableOutput("tab"))),
                          align="center", status = "danger",solidHeader = T,height=250)
))
server <- function(input, output) {

  output$tab <- DT::renderDataTable({
    datatable(head(iris),options=list("autoWidth"=TRUE, "pagelength"=15,"scrollY"=TRUE,"scrollX"=TRUE,"searching"=FALSE))
  })
}

# Run the application 
shinyApp(ui = ui, server = server)

На самом деле ScrollX работает отлично, почему scrollY не работает, а? Я читал об использовании tabBox вместо Box, но это тоже не работает. Заранее большое спасибо.

1 Ответ

1 голос
/ 28 октября 2019

Попробуйте withSpinner(DT::dataTableOutput("tab", height = '240px'), в настоящее время ваш код устанавливает высоту поля, а не таблицы данных.

Также попробуйте style = "overflow-x: scroll;" в аргументах box() для прокрутки

...