Skip to contents

Output and render functions to embed dataset_viewer() in a Shiny app. The widget pushes its live view state back to Shiny as inputs, so the app can reuse the user's filter, sort, and column selection server-side.

Usage

datasetviewerOutput(outputId, width = "100%", height = "500px")

renderDatasetViewer(expr, env = parent.frame(), quoted = FALSE)

Arguments

outputId

Output slot id. <character(1)>. Matched by datasetviewerOutput() and renderDatasetViewer().

width, height

CSS sizing. <character(1)>. Any valid CSS size; the grid fills the element.

expr

Render expression. A call that returns a dataset_viewer() widget.

env, quoted

Evaluation control. Standard htmlwidgets render plumbing; leave at their defaults.

Value

datasetviewerOutput() returns a Shiny output UI element; renderDatasetViewer() returns a Shiny render function.

Details

Inputs published. For an output with id "viewer" the widget sets, on every change:

  • input$viewer_columns (<character>): selected column names.

  • input$viewer_filter (<character(1)>): the filter expression.

  • input$viewer_sort (<list>): sort keys (name, dir).

  • input$viewer_view (<character(1)>): "names" or "labels".

See also

dataset_viewer() for the widget these bindings embed.

Examples

# ---- Example 1: read the viewer's filter and selection server-side ----
#
# The app shows a dataset and echoes the filter expression and selected
# columns the user builds in the grid. Runs only in an interactive session.
if (interactive()) {
  library(shiny)
  ui <- fluidPage(
    datasetviewerOutput("viewer", height = "500px"),
    verbatimTextOutput("state")
  )
  server <- function(input, output, session) {
    output$viewer <- renderDatasetViewer(dataset_viewer(mtcars))
    output$state <- renderText({
      paste0(
        "filter: ", input$viewer_filter, "\n",
        "columns: ", paste(input$viewer_columns, collapse = ", ")
      )
    })
  }
  shinyApp(ui, server)
}