r - Shiny:通过单击 valueBox 触发弹出窗口
问题描述
我想通过单击在弹出窗口中显示数据表valueBox
。valueBox
本身应该作为actionButton
.
当我单击它时,valueBox
它应该在弹出窗口中呈现一个表格,如下图所示。
任何人都可以帮助解决此代码吗?
我的代码:
library(shiny)
library(shinydashboard)
data <- iris
ui <- dashboardPage(
dashboardHeader(title = "Telemedicine HP"),
dashboardSidebar(),
dashboardBody(
fluidRow(
valueBox( 60, subtitle = tags$p("Attended", style = "font-size: 200%;"),
icon = icon("trademark"), color = "purple", width = 4,
href = NULL))))
server <- function(input,output){
}
shinyApp(ui, server)
解决方案
您可以onclick
使用shinyjs
. 因此,您需要添加useShinyjs()
您的 ui,您可以通过将您的 ui 包装在tagList
.
当单击具有给定 ID 的元素时,该onclick
函数会在您的服务器中触发。所以你还需要提供valueBox
一个ID。我决定div
用一个 ID 把它包装起来。
onclick
下一部分是在触发事件时创建一个弹出窗口。您可以使用showModal
函数 from来做到这一点shinyBS
。
工作示例
library(shiny)
library(shinydashboard)
library(shinyjs)
library(shinyBS)
data <- iris
ui <- tagList(
useShinyjs(),
dashboardPage(
dashboardHeader(title = "Telemedicine HP"),
dashboardSidebar(),
dashboardBody(
fluidRow(
div(id='clickdiv',
valueBox(60, subtitle = tags$p("Attended", style = "font-size: 200%;"), icon = icon("trademark"), color = "purple", width = 4, href = NULL)
)
)
)
)
)
server <- function(input, output, session){
onclick('clickdiv', showModal(modalDialog(
title = "Your title",
renderDataTable(data)
)))
}
shinyApp(ui, server)
推荐阅读
- apache-spark - Spark executor pods 在使用 kubernetes 作为 master 创建后迅速出错
- android - 应用程序正在通过按下 android studio 中的按钮关闭
- apache-kafka - 如何使用 NiFi 发布和使用 nifi json 到 avro 和 avro 到 json 内容到 kafka
- swiftui - 如何绑定 Bool 值(我从服务器获得)以在 SwiftUI 中隐藏/显示警报?
- javascript - 清除搜索字段时如何隐藏项目?
- reactjs - React:提前加载图片
- flutter - Flutter:如何根据选择的第一个下拉按钮值设置第二个下拉按钮(多级相关按钮)的值?
- c++ - 我无法从文件加载纹理(SFML c++)
- python - 需要从 Python 脚本运行 shell 命令并存储在变量中
- antlr - 词法分析器规则中的冲突