renderDataTable
renderDataTable(expr, options = NULL, searchDelay = 500,
callback = "function(oTable) {}", escape = TRUE, env = parent.frame(),
quoted = FALSE)
Arguments
expr | An expression that returns a data frame or a matrix. |
---|---|
options | A list of initialization options to be passed to DataTables, or a function to return such a list. |
searchDelay | The delay for searching, in milliseconds (to avoid too frequent search requests). |
callback | A JavaScript function to be applied to the DataTable object. This is useful for DataTables plug-ins, which often require the DataTable instance to be available (http://datatables.net/extensions/). |
escape | Whether to escape HTML entities in the table: TRUE means
to escape the whole table, and FALSE means not to escape it.
Alternatively, you can specify numeric column indices or column names to
indicate which columns to escape, e.g. 1:5 (the first 5 columns),
c(1, 3, 4) , or c(-1, -3) (all columns except the first and
third), or c('Species', 'Sepal.Length') . |
env | The environment in which to evaluate expr . |
quoted | Is expr a quoted expression (with quote() )? This
is useful if you want to save an expression in a variable. |
Description
Makes a reactive version of the given function that returns a data frame (or matrix), which will be rendered with the DataTables library. Paging, searching, filtering, and sorting can be done on the R side using Shiny as the server infrastructure.
Details
For the options
argument, the character elements that have the class
"AsIs"
(usually returned from I()
) will be evaluated in
JavaScript. This is useful when the type of the option value is not supported
in JSON, e.g., a JavaScript function, which can be obtained by evaluating a
character string. Note this only applies to the root-level elements of the
options list, and the I()
notation does not work for lower-level
elements in the list.
Note
This function only provides the server-side version of DataTables
(using R to process the data object on the server side). There is a
separate package DT (https://github.com/rstudio/DT) that allows
you to create both server-side and client-side DataTables, and supports
additional DataTables features. Consider using DT::renderDataTable()
and DT::dataTableOutput()
(see
http://rstudio.github.io/DT/shiny.html for more information).
References
Examples
## Only run this example in interactive R sessions
if (interactive()) {
# pass a callback function to DataTables using I()
shinyApp(
ui = fluidPage(
fluidRow(
column(12,
dataTableOutput('table')
)
)
),
server = function(input, output) {
output$table <- renderDataTable(iris,
options = list(
pageLength = 5,
initComplete = I("function(settings, json) {alert('Done.');}")
)
)
}
)
}