显示弹出模式对话框/弹出窗口,点击闪亮仪表板中的行

时间:2017-08-14 11:53:08

标签: r shiny shinydashboard dt

我有一个数据表,在我闪亮的仪表板中使用DT:: rendertableOutput进行渲染。列是ABCD。现在我想在打开Shiny应用程序时只显示列AB以及稍后如果我单击显示的数据表上的特定行我需要弹出一个显示数据的弹出窗口列CD中的行。

以下是我的数据框:

> df
   A         B       C      D
   A1        B1      C1     D1
   A2        B2      C2     D2   

条件:

  1. 在打开闪亮的应用时,仅显示列AB
  2. 点击显示数据的row 1后,row 1列的CD会显示为具有close按钮的弹出式窗口。当显示其他行时,这会继续相似。

1 个答案:

答案 0 :(得分:3)

让我们尝试将其添加到服务器代码中。基本上,当您选择特定行并显示其余数据时,我们会触发一个模式对话框。

require(dplyr)

#Here's our table:
tbl <- data.frame(A= c('A1','A2'),
           B= c('B1','B2'),
           C = c('C1','C2'),
           D = c('D1','D2'))

#The dt output code
output$my_table <- renderDataTable({
       datatable(tbl %>% select(A,B),selection='single')
})

#reactive table based on the selected row 
tbl_reactive <- reactive({
       tbl[as.numeric(input$my_table_rows_selected[1]),]
})

#here's the table displayed in our modal
output$modal_table <- renderDataTable({
      tbl_reactive()
})

 #our modal dialog box
    myModal <- function(failed=FALSE){
       modalDialog(
  dataTableOutput('modal_table'),
         easyClose = TRUE

       )
     }

#event to trigger the modal box to appear
 observeEvent(input$my_table_rows_selected,{

   showModal(myModal())

 })