Html shinydashboard标题下拉列表添加组链接
我想在标题面板的下拉菜单中放置多个链接,但现在我只能通过标签$li创建一个平面水平布局,而我想要一个垂直分组下拉菜单 一个最小的可重复代码如下,我的意思是我想把linkA和linkB放在grouplinkAB下,用户可以在一个新窗口中打开其中一个。这可能是通过代码中的下拉菜单(type='notifications',…)实现的,但我不知道将“grouplinkAB”的组名放在哪里,当点击链接时无法打开新窗口,而且我必须隐藏文本“youhave2notifications”,所以我想用标记$li和标记$ul实现它,但我对HTML知之甚少,任何帮助都将不胜感激Html shinydashboard标题下拉列表添加组链接,html,css,r,shiny,shinydashboard,Html,Css,R,Shiny,Shinydashboard,我想在标题面板的下拉菜单中放置多个链接,但现在我只能通过标签$li创建一个平面水平布局,而我想要一个垂直分组下拉菜单 一个最小的可重复代码如下,我的意思是我想把linkA和linkB放在grouplinkAB下,用户可以在一个新窗口中打开其中一个。这可能是通过代码中的下拉菜单(type='notifications',…)实现的,但我不知道将“grouplinkAB”的组名放在哪里,当点击链接时无法打开新窗口,而且我必须隐藏文本“youhave2notifications”,所以我想用标记$li
library(shinydashboard)
library(shiny)
runApp(
shinyApp(
ui = shinyUI(
dashboardPage(
dashboardHeader(title='Reporting Dashboard',
tags$li(class="dropdown",tags$a("grouplinkAB",href="http://stackoverflow.com/", target="_blank")),
tags$li(class="dropdown",tags$a("linkA",href="http://stackoverflow.com/", target="_blank")),
tags$li(class="dropdown",tags$a("linkB",href="http://stackoverflow.com/", target="_blank")),
dropdownMenu(type='notifications',
notificationItem(text='linkA',href="http://stackoverflow.com/"),
notificationItem(text='linkB',href="http://stackoverflow.com/")
)
),
dashboardSidebar(),
dashboardBody()
)
),
server = function(input, output){}
), launch.browser = TRUE
)
好的,大约一年前我看到了一个类似的请求,但没有深入研究。这一次,我试图让你的代码正常工作,但没有成功。然后我看了看
下拉菜单
code,发现它根本不适合处理这个问题,但可以修改以相当容易地完成
但我选择不这样做,而是创建了一个新版本的下拉菜单
专门用于此
代码如下:
library(shinydashboard)
dropdownHack <- function (...,badgeStatus = NULL, .list = NULL,menuname=NULL)
{
if (!is.null(badgeStatus)){
shinydashboard:::validateStatus(badgeStatus)
}
items <- c(list(...), .list)
lapply(items, shinydashboard:::tagAssert, type = "li")
dropdownClass <- paste0("dropdown ", "text-menu")
numItems <- length(items)
if (is.null(badgeStatus)) {
badge <- NULL
}
else {
badge <- span(class = paste0("label label-", badgeStatus), numItems)
}
tags$li(class = dropdownClass, a( href="#", class="dropdown-toggle",
`data-toggle`="dropdown", menuname, badge),
tags$ul(class = "dropdown-menu", items )
)
}
menuitemHack <- function(text,href){
notificationItem(text=text,href=href,icon=shiny::icon("rocket") )
}
runApp(
shinyApp(
ui = shinyUI(
dashboardPage(
dashboardHeader(title='Reporting Dashboard',
dropdownHack(menuname="GroupAB",
menuitemHack(text='linkA',href="http://stackoverflow.com/"),
menuitemHack(text='linkB',href="http://stackoverflow.com/")
),
dropdownMenu(type='notifications',
notificationItem(text='linkA',href="http://stackoverflow.com/"),
notificationItem(text='linkB',href="http://stackoverflow.com/")
)
),
dashboardSidebar(),
dashboardBody()
)
),
server = function(input, output){}
), launch.browser = TRUE
)
库(ShinydaShashboard)
dropdownHack太棒了!它工作正常,非常感谢。现在下拉列表的默认设置是liitle太宽,链接无法在新窗口中打开。我将搜索有关它的一些设置。