util.assignDeep and util.assignDeepObjectDom.prototype.prepend() did not prepend elements if a jQuery object was passed incolumns.widthCalc option which can be used to limit the column width calculations to use the data from the current page only. This is particularly useful for React / Vue integration, which can have child components that require to be rendered before display.data and render options.columns().widths()) when used with DOMPurify.scrollX)columns should allow null entriesstyle export for easy resolving of CSS from just the module name when used with a CSS bundler.style export for easy resolving of CSS from just the module name when used with a CSS bundler.style export for easy resolving of CSS from just the module name when used with a CSS bundler.select property to the DataTables state objectstyle export for easy resolving of CSS from just the module name when used with a CSS bundler.searchBuilder property in the AjaxData interface for DataTables' ajax requestsstyle export for easy resolving of CSS from just the module name when used with a CSS bundler.scroller propertystyle export for easy resolving of CSS from just the module name when used with a CSS bundler.style export for easy resolving of CSS from just the module name when used with a CSS bundler.style export for easy resolving of CSS from just the module name when used with a CSS bundler.style export for easy resolving of CSS from just the module name when used with a CSS bundler.keyTable property to DataTables' state objectstyle export for easy resolving of CSS from just the module name when used with a CSS bundler.style export for easy resolving of CSS from just the module name when used with a CSS bundler.fixedColumns() method.style export for easy resolving of CSS from just the module name when used with a CSS bundler.style export for easy resolving of CSS from just the module name when used with a CSS bundler.style export for easy resolving of CSS from just the module name when used with a CSS bundler.style export for easy resolving of CSS from just the module name when used with a CSS bundler.style export for easy resolving of CSS from just the module name when used with a CSS bundler.style export for easy resolving of CSS from just the module name when used with a CSS bundler.data parameter typed and additional Ajax interfaces exportedcolumn().nodes() was returning an array in an API result set, rather than just the nodes in the result set.State and StateLoad interfaces (rather than just object)style export for easy resolving of CSS from just the module name when used with a CSS bundler.This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
There are also improvements in the code to help with using Editor in a Next.js environment. For full details, please see below.
table will now accept a React, Vue or Angular reference to the host DataTable.for attribute in label elements shouldn't have a # prefixThis release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends to support this.
data-dt-order=disable.This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends.
This release also supports evaluation of the code in a windowless environment (e.g. directly in Node.js) and is released alongside DataTables 3.1, upon which it depends.
module flag.There are a couple of fixes, but no significant changes to the actual functional code of DataTables.
Dom.on() static method for listening to events in a windowless environment (used by most extensions to listen for initialisation of a DataTable)exports so Node and bundlers will see the ESM modules natively.import 'datatables.net-bs5/css'; for examplejQuery and jQuery wasn't loaded, the element would be used as the jQuery library! This of course resulted in an error../ prefix for paths in npm packagingstatesRemoveAll was incorrectly aliasedStateRestore class which can be used with the new StateRestore 2.0 extension for DataTables. At some point the server-side versioning will be decoupled from the client-side library, but not yet!
columns.editField to the Typescript types for DataTables' columnsStateRestore class that can be used to provide an end point for reading, creating, editing and deleting states.StateRestore class that can be used to provide an end point for reading, creating, editing and deleting states.StateRestore class that can be used to provide an end point for reading, creating, editing and deleting states.StateRestore class that can be used to provide an end point for reading, creating, editing and deleting states.DataTable.util.object.assignDeepObjects() will recursively use the same array handling now, rather than deep copying nested arrays. This allows DataTable.defaults.column to now be set correctly.titleRow when used with a header that has rowspan attributes would result in some header cells being missed for the ordering icons and handler.DataTable.defaults.ordering as an object could result in auto initialisation of ordering for a second table, even if it was disabled.:visible selector with a multi-row header could result in the wrong columns being selected.table-sm width a text alignment class could result in no spacing for the ordering iconsPlease see the blog post for further information about this new release, and the upgrade notes if you are updating from v1.
Please note as well that StateRestore is now a DataTables Plus extension.
statesTable)StateRestore helper class for an end point to handle all requests.searchDelay is enabled, rather than a throttle.Dom rather than jQuerycolReorder is used, while attached to the header cells, rather than to a ColumnControl button, a JS error could occur while reordering columns.state() was used as a setterstate() was used as a setter^$ regex search should match empty stringsDataTable.ajax() with dataType: 'json' add an Accept header giving weight to JSON content type. This matches jQuery.ajax().stateSaveCallback.stateLoadCallback can accept a partial start (StateLoad)render.number() rendering helper would display incorrectlystateLoadCallback now allows either an undefined return (for async actions) or a partial state response.scrollYDataTable.State as its own typechange event when triggered by an Editor operation.
change events from input elements in the form was not triggering.:visible pseudo column selector.
:visible selector for DataTable.ColumnSelector. The ability to prefix the pseudo selector with any DOM selector string is now part of the documentation and testing. Selector code relaxed to allow other pesudo selectors to prefix this one (although :visible must come last in the sequence).scrollX. This was particularly noticeable with ColReorder, but also apparent when adding new data with long strings.on event handlers should have a DataTableEvent type, as they have the .dt property available on the event object for API access.searchDropdown and how it inherits config optionsprocessing enabled in the DataTable, when switching from card to table view, the processing indicator would show indefinitely.buttons.info() popover wasn't displaying (resulting in no confirmation message for the copy export).ajax is used as a function and doesn't return an XMLHttpRequest, an error shouldn't be thrown when calling ajax.reload().? would be appended to a URL when making an Ajax request, even if there were no query parameters. No functional impact, but untidy.CellMeta and ColumnRenderFunction types for use with columns.render as a function.typeDetect option to initialisation optionson() or one() have a custom dt property available on the event object to allow easy access to the table's API for the event. This is now present in the TypeScript event for those functions.row().child() allows boolean values in the first parameter to hide / show an existing child row.row().child() returns a Dom interface, not jQuery in v3.stateSaveFor a high level overview of DataTables 3, please see the following documentation:
Since the 3.0.0-beta.2 release there have been a number of changes and few new features, which are detailed below.
For a full description of the changes in this major release since the last non-beta release, please refer to the release notes for the two betas:
DataTable.key() which is used to register a license key for use with DataTables Plus extensions (e.g. Editor and CardView).pageLength), a temporary option for that value will be added so it is less confusing for the end user.DataTable.Dom.s(document).on('ready'...) event. This is provided as a convenience rather than needing to listen for DOMContentLoaded and take account of if the document has already loaded or not.data-dt-row and data-dt-column selectors weren't working correctlycolumns().widths() didn't correctly take into account Responsive hidden columnsdata is provided as a string for DataTable.ajax it wasn't submittingautocomplete=off attributes to table input controls to improve accessabilityon are now automatically removed if a table is destroyeddom, pagingType and orderCellsTop where marked for removal in v3, but they are too widely used to remove at the moment. Only dom takes much code (and even then, not much) but it would be the most disruptive. Removing them from v3 deprecation target.There have been no functional changes in the software since its beta release. For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
There is just one fix in this release compared to the previous beta of this software (see details below).
For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
There have been no functional changes in the software since the beta release. For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
There is just one fix in this release compared to the previous beta of this software (see details below).
For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
There have been no functional changes in the software since the beta release. For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
There has been just a single new addition since the previous beta, which is to have the display view automatically update if the host row's data is invalidated in the main table.
For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
There have been no functional changes in the software since the beta release. For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
There have been no functional changes in the software since the beta release. For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
There have been no functional changes in the software since the beta release. For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
Moveover, Editor is now available on the DataTables CDN and the public NPM repository!
Editor is now part of the DataTables Plus suite of extensions and requires a license key to use. If you have an existing Editor license, your license key is available on your DataTables account page.
Further details on updating to Editor 3 are available in this upgrades notes document, which also highlights the major new features.
The release notes below document the specific changes.
static display controller which can be used to display the Editor form in a pre-defined element. This is primarily designed for use with a form that is always visible (i.e. standalone page editing).dataSrc option which can be used to tell Editor where to get the data to edit from. Specifically in addition to the HTML and DataTable sources that it could proviously do, this option can now be explicity set to ajax to have the form read remote data without needing a source DataTable.ajax.replacements will now apply to the Ajax calls made by upload and uploadMany.on option which can be used to assign event handlers during initialisation. This matches DataTables' own on option.template can now be given a template as the element to use as the template. In this case the contents are cloned and used as the form template. If any other element type is used, the original method of detaching the element and using it directly is still used.attr parameter for fields to set the validation conditions and the new fields.errorText option to set the error message. The error state is only triggered when the form is submitted. Server-side validation is uneffected.ajax option for autocomplete and tags can now be given as an object to provide fine-grained control over the Ajax request.display can now be given as a CSS selector string, which will result in static being used with the given selector used to pick the element that the form will be displayed in. This is just an easy shorthand for static.fields() undeprecated. It is tiny and can still be useful. No intention to remove it, so will keep it in place.ajax.replacements can now have a value set to false, and as a special case, id if specified will cause the default _id_ / {id} replacement not to happen (i.e. you can now specify your own replacement, or cancel the default action).close event to be triggered after an instance was destroyed. No longer._id_ if id has a value.uploadMany is disabled, upload and remove buttons should be removedstatic display controller exampleDataTable class to enable reading of data from a database table without needing to use the Editor class (which is the read / write equivalent).Editor.Fields() and DataTable.Columns() methods for adding multiple columns with an array (IEnumerable more specifically)Editor.Field() with an array is now deprecatedMicrosoft.Data.SqlClient, updated from System.Data.SqlClient.DataTable class to enable reading of data from a database table without needing to use the Editor class (which is the read / write equivalent).exports option in package.json.DataTable class to enable reading of data from a database table without needing to use the Editor class (which is the read / write equivalent).New Python port of the libraries for DataTables, providing full support for Editor.
]]>There is just one change since the v2 beta release, which is noted below.
For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
There have been a couple of new features and bug fixes made in this release, since the previous beta, including a new info content type. Please refer to the specifics below.
For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
info content type which will show a tooltip providing extra information about a column without clutter the screen.DataTable.render.date() was used without moment or luxon on the page, date picker search would not work.There have been no functional changes in ColReorder since the 3.0.0-beta.1 release. For a full description of the changes in this major release since the last non-beta release, please refer to the beta's release notes:
There are a number of reasons for doing this:
This is a backwards compatible change - the original files are now no-op files and can be included with no ill effect. They shouldn't be included for new projects, but old projects can continue to use them with no issues and they can be dropped as developer time allows.
For a full description of the changes in this major release since the last non-beta release, please refer also to the previous release notes:
orderCol and columnOrder button types to provide control over the table ordering via buttons.