renderDataTable(expr, options = NULL, searchDelay = 500, callback = "function(oTable) {}", env = parent.frame(), quoted = FALSE)


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 (
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.

Table output with the JavaScript library DataTables


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.


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.



# pass a callback function to DataTables using I() renderDataTable(iris, options = list( iDisplayLength = 5, fnInitComplete = I("function(oSettings, json) {alert('Done.');}") ) )
function(shinysession, name, ...) { res <- checkAsIs(if (is.function(options)) options() else options) data <- func() if (length(dim(data)) != 2) return() # expects a rectangular data object action <- shinysession$registerDataObj(name, data, dataTablesJSON) list( colnames = colnames(data), action = action, options = res$options, evalOptions = if (length(res$eval)) I(res$eval), searchDelay = searchDelay, callback = paste(callback, collapse = '\n') ) } <environment: 0x57f4f18> attr(,"class") [1] "shiny.render.function" "function" attr(,"outputFunc") function (outputId) { attachDependencies(div(id = outputId, class = "shiny-datatable-output"), dataTableDependency) } <environment: namespace:shiny>