我在R中构建一个闪亮的仪表板时遇到困难(使用shinydashboard
包)。我想锁定我的侧边栏,以便在查看我的标签内容时不会滚动,但我不确定如何将其关闭。
例如,以下代码块将创建一个长滚动的仪表板。锁定侧边栏会很棒,这样您在滚动浏览长度较长的数据表时仍然可以看到菜单选项卡。
library(ggplot2) ## for mpg dataset
library(shinydashboard)
## ui
ui <- dashboardPage(
dashboardHeader(title="MPG Data"),
dashboardSidebar(sidebarMenu(menuItem("MPG", tabName="mpg"))),
dashboardBody(tabItems(tabItem(tabName="mpg", fluidRow(tableOutput("mpgTable"))))))
## server
server <- function(input, output) {
output$mpgTable <- renderTable({mpg})
}
## launch dashboard
shinyApp(ui, server)
答案 0 :(得分:9)
**免责声明:无论如何我不是css专家
您可以在DT中为实际表格设置选项,但是如果您希望实际仪表板中的选项卡可以从侧边栏中滚动(假设您没有使用基于代码的导航栏),请尝试以下操作:
css看起来像这样:
.sidebar {
color: #FFF;
position: fixed;
width: 220px;
white-space: nowrap;
overflow: visible;
}
如果你的'www'文件夹中有.css文件,你可以从具有许多功能的ui中调用它;所以我们假设您的文件名为“style.css”。
现在,ui看起来像这样:dashboardPage(
dashboardHeader(title="MPG Data"),
dashboardSidebar(
sidebarMenu(
menuItem("MPG",tabName="mpg")
)
),
dashboardBody(
#here's where you throw the css into the header
tags$head(
includeCSS('www/style.css')
),
tabItems(
tabItem(tabName="mpg",
fluidRow(tableOutput("mpgTable"))
)
)
)
)
服务器端没有任何内容发生变化,但您可能希望使用DT或表中的设置选项进行检查,以便更轻松地处理数据。 DT包装参考。
希望这有帮助。
答案 1 :(得分:7)
你应该在ui侧边栏添加style =“position:fixed; overflow:visible”。
library(ggplot2) ## for mpg dataset
library(shinydashboard)
## ui
ui <- dashboardPage(
dashboardHeader(title="MPG Data"),
dashboardSidebar(
sidebarMenu(style = "position: fixed; overflow: visible;",
menuItem("MPG", tabName="mpg"))),
dashboardBody(
tabItems(
tabItem(tabName="mpg",
fluidRow(tableOutput("mpgTable"))))))
## server
server <- function(input, output) {
output$mpgTable <- renderTable({mpg})
}
## launch dashboard
shinyApp(ui, server)
答案 2 :(得分:0)
@HipHopPhysician你可以发布你想要运行的内容吗?否则这里是使用DT作为解决方法的最简单方法......有很多选项需要设置;所以我要给出默认值:
library(ggplot2)
library(DT)
library(shinydashboard)
ui <-
dashboardPage(
dashboardHeader(title="MPG Data"),
dashboardSidebar(
sidebarMenu(
menuItem("MPG",tabName="mpg")
)
),
dashboardBody(
#here's where you throw the css into the header
tags$head(
includeCSS('www/style.css')
),
tabItems(
tabItem(tabName="mpg",
dataTableOutput("mpgTable"))
)
)
)
server <- function(input, output) {
output$mpgTable <- renderDataTable({ mpg })
}