首页 > 解决方案 > 如何在 R Shiny Dashboard 中停止数据表相互重叠?

问题描述

我在创建需要 2 个表并排的仪表板时遇到问题。这部分很好,但是当窗口以默认大小打开时(或者如果用户使其小于显示完整表格所需的宽度),数据表会相互重叠,直到用户使窗口足够窄以致于导航栏消失,第二个数据表向下移动到下一行。

谁能告诉我为什么会发生这种情况,有没有办法阻止这种情况?

我已经用一些示例代码复制了这个。

library(shiny)
library(shinydashboard)
library(DT)
library(dplyr)

ui <- dashboardPage( 
  skin = "blue",
  dashboardHeader(title = "Test"),
  dashboardSidebar(
    width = 250,
    collapsed = FALSE,
    sidebarMenu(
      id = "tabs",
      menuItem("Tables",tabName="tab",icon=icon("car")))
    ),
  dashboardBody(
    tabItems(
      tabItem(
        "tab",
        fluidPage(
          fluidRow(
            column(width = 4,
                   h4("TABLE 1"),
                   DTOutput("table1")),
            column(width = 4,
                   h4("TABLE 2"),
                   DTOutput("table2"))
            )
          )
        )
      )
    )
  )

server <- function(input, output, session){
  
  table1 <- head(iris)[1:2]
  table2 <- head(iris)[3:5]
  
  output$table1 <- DT::renderDT({
    datatable(table1,
              escape=FALSE,
              rownames=TRUE,
              selection ='none',
              options = list(
                dom ='t',
                paging = FALSE,
                searcing = FALSE,
                filtering = FALSE,
                ordering = FALSE)
              )
    })
  
  output$table2 <- DT::renderDT({
    datatable(table2,
              escape=FALSE,
              rownames=TRUE,
              selection ='none',
              options = list(
                dom ='t',
                paging = FALSE,
                searcing = FALSE,
                filtering = FALSE,
                ordering = FALSE)
    )
  })
}

shinyApp(ui, server)

理想情况下,我希望列宽根据需要自动调整(即使这意味着部分文本被覆盖 - 想想一个文本太长的 excel 电子表格,并且下一个单元格中有一些东西,所以它只是被剪切了离开)。无论如何,我不希望表格重叠,它们应该保持在列边界内。

标签: cssrshinyshinydashboard

解决方案


推荐阅读