我有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)
)
)
)
}
))
......输出:
现在,如何预防&#34; 快速的棕色狐狸跳过懒狗&#34;从文本包装,因此只占一行?
我可以设置一些选项让页面更宽吗?
答案 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。