shiny-pager-ui
shiny-pager-ui copied to clipboard
A paging input for R/Shiny applications
Pager UI
A generic pager widget for R/Shiny based applications.

Features
- Prev / Next buttons
- Dynamically rendered page number buttons
- displays all if ≤ 10 pages
- smart display of spacer
...buttons for larger ranges
- R functions
pageruiInput()(forui.R) andupdatePageruiInput()(forserver.R) make it simple to use in any Shiny application
Application
Provide paging abilities to data sets that require more processing / rendering than a table.
Installation
If you don't have the devtools package, install it:
install.packages('devtools')
This allows you to install packages directly from GitHub. Install this package:
devtools::install_github('wleepang/shiny-pager-ui')
Run the demo
Run the following to see the widget in action:
library(shinyPagerUI)
runExamplePagerUI()
The source for the example application is in:
inst/example_app
Use the widget
- In the
global.Rfile (create it if it doesn't exist) add the line:
library(shinyPagerUI)
- In
ui.Radd the widget as needed usingpageruiInput(). - In
server.RuseupdatePageruiInput()in reactive contexts that need to update the widget.
Examples
In ui.R:
- add a pager with id
pager:
pageruiInput('pager')
- add a pager-ui with id
pagerand initial current page of 5, initial total pages 10:
pageruiInput('pager', page_current = 5, pages_total = 10)
In server.R:
- retrieve the current value from a pager-ui with id
pager
pager_state = input$pager
## str(pager_state)
##> List of 2
##> $ page_current: int 1
##> $ pages_total : int 4
- update the current page of a pager-ui with id
pager
updatePageruiInput(session, 'pager', page_current = new_page_current)
- update the total number of pages available on a pager-ui with id
pager
updatePageruiInput(session, 'pager', pages_total = new_pages_total)
- update both the current page and total number of pages for a pager-ui with id
pager
updatePageruiInput(session, 'pager',
page_current = new_page_current,
pages_total = new_pages_total)