在Shiny模式中访问数据表中的行单击

时间:2018-05-29 08:01:15

标签: shiny dt

这是从这里(https://community.rstudio.com/t/accessing-row-clicks-in-data-table-in-modal/8961)交叉发布的,尚无回复。

我正在模式中使用Shiny中的DT包绘制数据表。这对我的用户界面非常有用,但我希望用户能够点击它并访问他们点击的行。通常的输入$ tablename_rows_clicked不起作用,因为它没有在UI中给出一个插槽。

有一种聪明的DT型方法吗?或者是否有一种聪明的JavaScript方式?有人有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以这样做:

library(DT)
library(shiny)

ui <- fluidPage(
  actionButton("Submit","Submit")
)

server <- function(input, output, session) {

  output$Table <- renderDataTable({datatable(mtcars, selection = 'single')})

  Clicked <- eventReactive(input$Table_rows_selected,{
    input$Table_rows_selected
  })

  output$selected <- renderText({paste0("You Selected Row: ",Clicked())})

  observeEvent(input$Submit,{
    showModal(modalDialog( h2("Row Selection Example"),DT::dataTableOutput('Table'),size = "l",br(),textOutput("selected")))
  })
}

shinyApp(ui, server)

enter image description here