2017-10-04 104 views
0

我有一个对话框,我需要在服务器端创建,因为是一个对话框,我嵌入在一个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很陌生 谢谢,

回答

1

看看下面的例子,在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) 

enter image description here

相关问题