DataTables 2.3.0
DataTables CDN files for DataTables 2.3.0. This software was originally released on 30th April, 2025.
Release notes
A lot of focus in this release on how the table header's are displayed and control of them. This is in large part getting DataTables ready for the up coming ColumnControl extension (keep an eye on the blog for more information about ColumnControl which will be released in due course). Specifically the header cell is now displayed using flexbox and the order listeners and icons can be controlled independently. Also, the new titleRow option can be used to tell DataTables which row to use for column titles.
Other improvements include a new ajax.submitAs option which tells DataTables if data should be submitted to the server as HTTP parameters or JSON.
Furthermore, there are various fixes and performance improvements. See the release notes below for full details.
New
onoption which can be used to listen for events during the DataTables initialisation.titleRowoption (replacesorderCellsTop). This provides the ability to make any row in the header the "title" row.ajax.submitAsoption to control if data should be submitted as HTTP parameters (default), or a JSON string. This replacesajax.databeing used as a function and returning a string (which is still possible, but not recommended and won't work with SearchPanes and others).ordering.handleroption which can be used to enable/disable the default column header click-to-order listener.ordering.indicatoroption which can be used to enable/disable the ordering icons in the table's header cells. Both of these options are useful when working with the new ColumnControl extension to allow maximum flexibility of the UI.language.lengthLabelsoption, allowing the options in the page length dropdown to be specified by the language options (including a language file).column().name()andcolumns().names()methods. These are useful if you usecolumns.nameto help identify columns.order.listener()can now accept an array of columns to apply multi-column ordering to when activated.columnOrderoption forselector-modifierto give control of column ordering when usingcolumns().- Header and footer cell layout now uses flexbox. This involves a new wrapper
divin the cells.
Updates
- Safari 8+ supported (it was released in 2014, inline with the DataTables 10 year policy)
- When using
titleRow(or the legacyorderCellsTop)columns.titleis written to only the title target row. destroy()method for updated header / footer- Table footer content now uses the same flexbox layout as the header
Fixes
- Don't append
span.dt-column-orderto header rows / cells withdata-dt-order=disable. - Make the DataTable container position: relative for all styling integrations.
- Performance - Faster column selectors. Only building title / name data when needed, and optimised to get the header cells.
- Performance - Header rendered will only run on ordering cells when column-visibility is triggered.
column().search.fixed()when getting a search that doesn't exist should returnnull.- When restoring an ordering state using column names, if a name isn't found, don't use column index 0, just ignore.
- If a draw action happens before data is loaded, the table should still show a loading message.
- After ordering triggered via the API with a named column, column header click to order didn't follow in the expected sequence.
- Possible "Maximum call stack size exceeded." with loading thousands of rows from the DOM.
- Define and document the order that column selectors will resolve to. In short, the order is that specified in the selector array, while a string selector (CSS) will resolve to the index order.
- Fomantic UI workaround for
thead > tr > tdcells being unstyled
Typescript
layoutdidn't account for functions, nodes or jQuery.- Tighten types for
selector-modifierso the strings are explicit in the values they can take. - OrderArray was missing an empty string option for the direction.
- Improve types of
reduce()andreduceRight() - Add
thistype to callback functions - Make
argsoptional intrigger() - Correct
stateLoadCallbacktype
Docs
- Add note about removing diacritic normalisation
- Correction to parameter types for
column-visibility - Clarify the top level selectors ignore what has gone before
Files
js
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap.js
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap4.js
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap4.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap4.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap4.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap5.js
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap5.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap5.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.bootstrap5.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.bulma.js
- //cdn.datatables.net/2.3.0/js/dataTables.bulma.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.bulma.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.bulma.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.dataTables.js
- //cdn.datatables.net/2.3.0/js/dataTables.dataTables.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.dataTables.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.dataTables.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.foundation.js
- //cdn.datatables.net/2.3.0/js/dataTables.foundation.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.foundation.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.foundation.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.jqueryui.js
- //cdn.datatables.net/2.3.0/js/dataTables.jqueryui.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.jqueryui.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.jqueryui.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.js
- //cdn.datatables.net/2.3.0/js/dataTables.material.js
- //cdn.datatables.net/2.3.0/js/dataTables.material.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.material.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.material.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.semanticui.js
- //cdn.datatables.net/2.3.0/js/dataTables.semanticui.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.semanticui.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.semanticui.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.tailwindcss.js
- //cdn.datatables.net/2.3.0/js/dataTables.tailwindcss.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.tailwindcss.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.tailwindcss.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.uikit.js
- //cdn.datatables.net/2.3.0/js/dataTables.uikit.min.js
- //cdn.datatables.net/2.3.0/js/dataTables.uikit.min.mjs
- //cdn.datatables.net/2.3.0/js/dataTables.uikit.mjs
css
- //cdn.datatables.net/2.3.0/css/dataTables.bootstrap.css
- //cdn.datatables.net/2.3.0/css/dataTables.bootstrap.min.css
- //cdn.datatables.net/2.3.0/css/dataTables.bootstrap4.css
- //cdn.datatables.net/2.3.0/css/dataTables.bootstrap4.min.css
- //cdn.datatables.net/2.3.0/css/dataTables.bootstrap5.css
- //cdn.datatables.net/2.3.0/css/dataTables.bootstrap5.min.css
- //cdn.datatables.net/2.3.0/css/dataTables.bulma.css
- //cdn.datatables.net/2.3.0/css/dataTables.bulma.min.css
- //cdn.datatables.net/2.3.0/css/dataTables.dataTables.css
- //cdn.datatables.net/2.3.0/css/dataTables.dataTables.min.css
- //cdn.datatables.net/2.3.0/css/dataTables.foundation.css
- //cdn.datatables.net/2.3.0/css/dataTables.foundation.min.css
- //cdn.datatables.net/2.3.0/css/dataTables.jqueryui.css
- //cdn.datatables.net/2.3.0/css/dataTables.jqueryui.min.css
- //cdn.datatables.net/2.3.0/css/dataTables.material.css
- //cdn.datatables.net/2.3.0/css/dataTables.material.min.css
- //cdn.datatables.net/2.3.0/css/dataTables.semanticui.css
- //cdn.datatables.net/2.3.0/css/dataTables.semanticui.min.css
- //cdn.datatables.net/2.3.0/css/dataTables.tailwindcss.css
- //cdn.datatables.net/2.3.0/css/dataTables.tailwindcss.min.css
- //cdn.datatables.net/2.3.0/css/dataTables.uikit.css
- //cdn.datatables.net/2.3.0/css/dataTables.uikit.min.css