【问题标题】:Shinydashboard tabBox to fill mainPanelShinydashboard tabBox 填充 mainPanel
【发布时间】:2021-06-02 10:45:57
【问题描述】:

有没有一种简单的方法可以让下面的tabBox 跨越dashboardBody 的整个高度?

app_ui <- function() {

    shinydashboard::dashboardPage(
      shinydashboard::dashboardHeader(title = "Baseball Statistics"),
      
      shinydashboard::dashboardSidebar(
        width = 250
      ),
      
      shinydashboard::dashboardBody(
        shinydashboard::box(title = "Individual"),
        shinydashboard::tabBox(title = "Stats",
                               shiny::tabPanel("Batting", DT::DTOutput("batting")),
                               shiny::tabPanel("Pitching", DT::DTOutput("pitching")),
                               shiny::tabPanel("Fielding", DT::DTOutput("fielding"))
                               )
      )
    )
}

我希望datatable 占据尽可能多的垂直屏幕:

以下回答不成功-Shinydashboard Tabbox Height

我试图通过以下方式整合上述答案:

      shinydashboard::dashboardBody(
        shinydashboard::box(title = "Individual"),
        shinydashboard::tabBox(title = "Stats",
                               shiny::tags$head(
                                 shiny::tags$style(shiny::HTML(" #tabBox { height:90vh !important; } "))
                               ),
                               id="tabBox",
                               shiny::tabPanel("Batting", DT::DTOutput("batting")),
                               shiny::tabPanel("Pitching", DT::DTOutput("pitching")),
                               shiny::tabPanel("Fielding", DT::DTOutput("fielding"))
                               )
      )

输出如下:

【问题讨论】:

  • 您是否已经尝试过这项工作? stackoverflow.com/questions/31872980/…
  • 是的,我有,但不成功。
  • 嗯好的,对我来说它有效,你能告诉我你是如何尝试整合它的吗?
  • 在编辑中添加。
  • 我在下面添加了我的答案,也许我们可以更接近解决方案

标签: r shiny shinydashboard


【解决方案1】:

这是我的最后一次尝试,其他的似乎没有成功,所以:

  output$dataset <- DT::renderDT(dataframes$df.response,
    callback = JS(js),
    filter = "top",
    rownames = FALSE,
    selection = list(target = "row+column"),
    extensions = c("ColReorder"),
    options = list(
      # scrollX = TRUE,
      # lengthMenu = c(15, 50, 100, 200, 500),
      # colReorder = list(realtime = FALSE),
      pageLength = 1000,
      scrollY=TRUE
   )
  )

pagelength 元素添加到数据集的最大行数,加载时将完全显示。就像在这个屏幕上:。这对您来说是一种可能的解决方法吗?

【讨论】:

  • 是的,我得到了一个没有标题的奇怪的额外标签。而且我也没有看到你的数据集。
  • 好的,我现在可以看到数据并且没有奇怪的空面板,但是 Datatable 是 atm 不缩放
  • 我可能有最后的解决方法可以向您展示可以帮助您的方法
  • 我更新了我的答案,您可以从一开始就看到整个数据集行,这对您来说可能是一种解决方法吗?在我的示例中,它跨越了整个屏幕,我不得不滚动很多 scrolly=TRUE
【解决方案2】:

这可能取决于其他 DT 选项。

当我只使用 scrollX 选项时

  output$batting <- renderDT(iris, 
                             options = list( scrollX = TRUE))

我收到

【讨论】:

  • 那么如何在 DT 中添加滚动条,以便滚动到被截断的部分数据?
  • eg.: output$dataset
  • 完美,添加了水平滚动条。现在它只在页面底部运行,尤其是当我选择显示 100 行时。有没有办法限制垂直延伸?
  • 我编辑添加了滚动和分页。分页不能超过页面长度
猜你喜欢
  • 2020-03-22
  • 2021-06-19
  • 2016-06-27
  • 2019-01-22
  • 2018-04-12
  • 2012-01-22
  • 2015-07-13
  • 2016-10-10
相关资源
最近更新 更多