Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html shinydashboard标题下拉列表添加组链接_Html_Css_R_Shiny_Shinydashboard - Fatal编程技术网

Html shinydashboard标题下拉列表添加组链接

Html shinydashboard标题下拉列表添加组链接,html,css,r,shiny,shinydashboard,Html,Css,R,Shiny,Shinydashboard,我想在标题面板的下拉菜单中放置多个链接,但现在我只能通过标签$li创建一个平面水平布局,而我想要一个垂直分组下拉菜单 一个最小的可重复代码如下,我的意思是我想把linkA和linkB放在grouplinkAB下,用户可以在一个新窗口中打开其中一个。这可能是通过代码中的下拉菜单(type='notifications',…)实现的,但我不知道将“grouplinkAB”的组名放在哪里,当点击链接时无法打开新窗口,而且我必须隐藏文本“youhave2notifications”,所以我想用标记$li

我想在标题面板的下拉菜单中放置多个链接,但现在我只能通过标签$li创建一个平面水平布局,而我想要一个垂直分组下拉菜单

一个最小的可重复代码如下,我的意思是我想把linkA和linkB放在grouplinkAB下,用户可以在一个新窗口中打开其中一个。这可能是通过代码中的下拉菜单(type='notifications',…)实现的,但我不知道将“grouplinkAB”的组名放在哪里,当点击链接时无法打开新窗口,而且我必须隐藏文本“youhave2notifications”,所以我想用标记$li和标记$ul实现它,但我对HTML知之甚少,任何帮助都将不胜感激

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太宽,链接无法在新窗口中打开。我将搜索有关它的一些设置。