r - 如何在选项卡上获得 Shiny 的通知图标

标签 r shiny

我在一个 Shiny 的应用程序中有一个 tabpanelSet。其中一个选项卡包含一个数据表。我希望数据表中的行数显示在选项卡标题文本旁边的一个漂亮的圆形图标中,以便用户在单击选项卡之前可以看到选项卡内数据表中的数字。

这是基本的应用程序。我想要圆形通知图标库的“详细信息”选项卡

library(shiny)
library(DT)
library(data.table)

ui <- fluidPage(

    # Application title
    titlePanel("Circular notification icon app"),

        mainPanel(
            tabsetPanel(type = "tabs",
                        tabPanel("Empty"),
                        tabPanel("Details",
                                 DT::dataTableOutput("iris"))
            )
        )
)

server <- function(input, output) {

    output$iris = DT::renderDT({
        datatable(iris,class = "display wrap",selection = "single",
                  options = list(
                      scrollX = TRUE,
                      scrollY = TRUE,
                      pageLength = 15,
                      select = "api",
                      dom = 'Bfrtip')
        )
    })
}

# Run the application
shinyApp(ui = ui, server = server)

最佳答案

像这样吗?

library(shiny)
library(DT)
library(shinyjs)

CSS <- "
#tabHeader {
  display: inline-block;
}
.circle {
  display: inline-block;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  font-size: 12px;
  color: #fff;
  line-height: 25px;
  text-align: center;
  background: #000
}"

js <- function(nrows){
  sprintf("$('#tabHeader .circle').html('%s');", nrows)
}


ui <- fluidPage(
  
  useShinyjs(),
  
  tags$head(
    tags$style(HTML(CSS))
  ),
  
  # Application title
  titlePanel("Circular notification icon app"),
  
  mainPanel(
    tabsetPanel(type = "tabs",
                tabPanel("Empty"),
                tabPanel(div(id = "tabHeader", span("Details"), 
                             div(class = "circle")),
                         DTOutput("iris"))
    )
  )
  
)


server <- function(input, output) {
  
  runjs(js(nrow(iris)))
  
  output$iris = renderDT({
    datatable(iris, class = "display wrap", selection = "single",
              options = list(
                scrollX = TRUE,
                scrollY = TRUE,
                pageLength = 15,
                select = "api",
                dom = 'Bfrtip')
    )
  })
  
}

# Run the application
shinyApp(ui = ui, server = server)

enter image description here

关于r - 如何在选项卡上获得 Shiny 的通知图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62592673/

相关文章:

r - 使一个条形上的边框比其他条形更暗

r - 在 ggplot 中向轴标签和刻度添加换行符

在脚本中使用 setwd() 的风险?

r - 使用 DT DataTables 行在 R/Shiny 中实现反馈,每个选择输入选项不起作用/崩溃

R Shiny - 保存单选按钮和复选框的组合输入

R Shiny 将图片添加到带有文本的流体行中的框中

javascript - 你能告诉 MutationObserver 只听特定的输入吗?在 pickerInput 中选择整组选项?

r - 如何查找R中的数字是否连续?

R 引用类 - 如何确定您是否在继承方法中?

css - R Shiny 进度框