Skip to content

epi-interactive/Datatable_Overlay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Datatable Overlay

Sometimes there are too many rows in a data table to display on one page and scrolling is not the most user-friendly way to solve this. This examples provides a way to layer information into a overlay which can be accessed by clicking a link in a data table.

You can try out the app here

alt text

How it works

Add an an extra column for the data in your table and attach a Shiny event listener to it to return its index

dat <- iris %>% mutate(More = paste0('<span><a href="javascript:void(0)" onmousedown="',
                                    'Shiny.onInputChange(\'DTClick\',[', 1:n(), ',Math.random()]);',
                                    'event.preventDefault(); event.stopPropagation(); return false;">
                                    <font color="grey">&#9679;&#9679;&#9679;</font>
                                    </a></span>')
                                    )
                      )

Listen for the click and show the overlay

observeEvent(input$DTClick, {
      showModal(modalDialog(
        title = paste0("You just clicked row ", as.numeric(input$DTClick[1])),
        dataTableOutput("modalContent"),
        size = "l",
        easyClose = TRUE,
        footer = NULL
      ))
    })

Code created by Epi-interactive

As always, our expert team is here to help if you want custom training, would like to take your dashboards to the next level or just need an urgent fix to keep things running. Just get in touch for a chat.

https://www.epi-interactive.com/contact

About

How to open an R Shiny modal popup from a hyperlink in a datatable

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published