如何在R Shiny中设置页面宽度?

时间:2014-04-30 08:30:55

标签: r datatables jquery-datatables shiny

我有fluidPage sidebarLayout。在mainPanel中,我的dataTableOutput非常宽tabPanel

目前,列被挤压在一起,每行都是文本包装的,以跨越多行。但是,我希望表格的每一行不是文本包装,并且要在页面上启用水平滚动

最小工作示例:

library(shiny)
nrow <- 20; ncol <- 26
runApp(list(
    ui = fluidPage(
        sidebarLayout(
            sidebarPanel(helpText("Hello world")),
            mainPanel(
                tabsetPanel(
                    tabPanel("Table", dataTableOutput("table"))
                )
            )
        )
    ),
    server = function(input, output, session) {
        output$table <- renderDataTable(
            as.data.frame(
                matrix(nrow = nrow,
                    rep("The quick brown fox jumps over the lazy dog", nrow*ncol)
                )
            )
        )
    }
))

......输出:

enter image description here

现在,如何预防&#34; 快速的棕色狐狸跳过懒狗&#34;从文本包装,因此只占一行?

我可以设置一些选项让页面更宽吗?

2 个答案:

答案 0 :(得分:1)

使用带宽度的div来展示你的tabpanel。添加一些css来更改流体容器的最大宽度

library(shiny)
nrow <- 20; ncol <- 26
runApp(list(
  ui = fluidPage(
    sidebarLayout(
      sidebarPanel(helpText("Hello world")),
      mainPanel(

        tabsetPanel(
          div(tabPanel("Table", dataTableOutput("table")), style = 'width:5500px;')
        )
        , 
        tags$head(tags$style(type="text/css", ".container-fluid {  max-width: 12600px; /* or 950px */}"))
      )
    )
  ),
  server = function(input, output, session) {
    output$table <- renderDataTable({
      as.data.frame(
        matrix(nrow = nrow,
               rep("The quick brown fox jumps over the lazy dog", nrow*ncol)
        )
      )
    })
  }
))

答案 1 :(得分:-1)

将div从封闭tabPanel的位置移动到包围tabPanel内容,如下所示:

  tabsetPanel(
    tabPanel("Table", div(dataTableOutput("table"), style = 'width:5500px;'))
    tabPanel("Table2", div(dataTableOutput("table2"), style = 'width:5500px;'))
    )

将div中的tabPanels包围起来,将导致一个包含两个表的单个tabPanel而不是每个都包含一个表的两个tabPanel。