如何从一个uiOutput服务器端获取从闪亮的
问题描述:
我有一个对话框,我需要在服务器端创建,因为是一个对话框,我嵌入在一个DT。如何从一个uiOutput服务器端获取从闪亮的
为什么我创建这个问题的原因是因为我在我的对话框如下:
observeEvent(input$show, {
showModal(modalDialog(
title = "Select location:",
uiOutput('select.file'),
# plotOutput("plot"),
easyClose = TRUE
))
})
我嵌入对话框的行如下所示:
newrow <- shinyInput(actionButton, 5, 'button_', label = "Season", onclick = 'Shiny.onInputChange(\"show\", this.id)')
的问题是,当我想做一个情节向用户显示数据的方式时,我不能因为我不知道迄今为止选择了哪个值。正因为如此,我不能把它看作是csv并将其绘制出来。
有人可以提供一个方法或想法吗?我对Shiny很陌生 谢谢,
答
看看下面的例子,在Datatable单击时生成一个图表。
在这里,您可以将选定的行包装为反应性的SelectedRow()
,然后可以使用该行来映射行号。我已经显示的行数在modal
标题:
rm(list = ls())
library(DT)
library(shiny)
library(shinyBS)
# This function will create the buttons for the datatable, they will be unique
shinyInput <- function(FUN, len, id, ...) {inputs <- character(len)
for (i in seq_len(len)) {
inputs[i] <- as.character(FUN(paste0(id, i), ...))}
inputs
}
ui <- fluidPage(
DT::dataTableOutput('my_table'),uiOutput("popup")
)
server <- function(input, output, session) {
my_data <- reactive({
testdata <- mtcars
as.data.frame(cbind(View = shinyInput(actionButton, nrow(testdata),'button_', label = "View", onclick = 'Shiny.onInputChange(\"select_button\", this.id)'),testdata))
})
output$my_table <- DT::renderDataTable(my_data(),selection = 'single',options = list(searching = FALSE,pageLength = 10),server = FALSE, escape = FALSE,rownames= FALSE)
SelectedRow <- eventReactive(input$select_button,{
as.numeric(strsplit(input$select_button, "_")[[1]][2])
})
observeEvent(input$select_button, {
toggleModal(session, "modalExample", "open")
})
DataRow <- eventReactive(input$select_button,{
my_data()[SelectedRow(),2:ncol(my_data())]
})
output$popup <- renderUI({
bsModal("modalExample", paste0("Data for Row Number: ",SelectedRow()), "", size = "large",
column(12,renderPlot(plot(mtcars))
)
)
})
}
shinyApp(ui, server)