单击按钮调整 bs4Dash 控制栏的大小
Resize bs4Dash controlbar on button click
我想在单击按钮时调整 bs4Dash 控制栏的大小 - 特别是在单击 controlbaritem 按钮时。我似乎无法让 updateControlbar()
以我想要的方式工作(例如,将控制栏的大小从 350 像素调整为 600 像素)。我的要求可以吗?
library(shiny)
library(bs4Dash)
shinyApp(
ui = dashboardPage(
header = dashboardHeader(),
sidebar = dashboardSidebar(uiOutput("sidebar")),
body = dashboardBody(),
controlbar = dashboardControlbar(
id = "controlbar",
wdth = 350,
pinned = TRUE,
controlbarMenu(
id = "menu",
type = "pills",
controlbarItem(id = "button1", title = "button1"),
controlbarItem(id = "button2", title="button2")
)
)
),
server = function(input, output, session) {
output$sidebar <- renderMenu({
sidebarMenu(id = "main_menu",
menuItem(text = "First page", tabName = "tab1"),
menuItem(text = "Second page", tabName = "tab2")
)
})
observeEvent(input$button2, {
updateControlbar(id = "controlbar", session=session, width = 600)
})
}
)
感觉 updateControlbar
不允许您更改宽度,我阅读了帮助文件,似乎更新宽度不是一个选项(如果我错了请纠正我)。
这里我给大家提供一个替代方案,使用UI中的javascript直接更新UI。您需要做的就是将以下行添加到您的 body
,
tags$script('$(function(){$(\'[data-value="button2"]\').click(function(){$("#controlbar").css("width", "600px")})})')
像这样
body = dashboardBody(tags$script('$(function(){$(\'[data-value="button2"]\').click(function(){$("#controlbar").css("width", "600px")})})')),
将 600px
更改为您想要的任何宽度。
我想在单击按钮时调整 bs4Dash 控制栏的大小 - 特别是在单击 controlbaritem 按钮时。我似乎无法让 updateControlbar()
以我想要的方式工作(例如,将控制栏的大小从 350 像素调整为 600 像素)。我的要求可以吗?
library(shiny)
library(bs4Dash)
shinyApp(
ui = dashboardPage(
header = dashboardHeader(),
sidebar = dashboardSidebar(uiOutput("sidebar")),
body = dashboardBody(),
controlbar = dashboardControlbar(
id = "controlbar",
wdth = 350,
pinned = TRUE,
controlbarMenu(
id = "menu",
type = "pills",
controlbarItem(id = "button1", title = "button1"),
controlbarItem(id = "button2", title="button2")
)
)
),
server = function(input, output, session) {
output$sidebar <- renderMenu({
sidebarMenu(id = "main_menu",
menuItem(text = "First page", tabName = "tab1"),
menuItem(text = "Second page", tabName = "tab2")
)
})
observeEvent(input$button2, {
updateControlbar(id = "controlbar", session=session, width = 600)
})
}
)
感觉 updateControlbar
不允许您更改宽度,我阅读了帮助文件,似乎更新宽度不是一个选项(如果我错了请纠正我)。
这里我给大家提供一个替代方案,使用UI中的javascript直接更新UI。您需要做的就是将以下行添加到您的 body
,
tags$script('$(function(){$(\'[data-value="button2"]\').click(function(){$("#controlbar").css("width", "600px")})})')
像这样
body = dashboardBody(tags$script('$(function(){$(\'[data-value="button2"]\').click(function(){$("#controlbar").css("width", "600px")})})')),
将 600px
更改为您想要的任何宽度。