LengthLinks
Deep linking options parsing support for DataTables
- Author: SpryMedia Ltd
- License: MIT - http://datatables.net/license/mit
This feature plug-in for DataTables provides a function which will
take DataTables options from the browser's URL search string and
return an object that can be used to construct a DataTable. This
allows deep linking to be easily implemented with DataTables - for
example a URL might be myTable?displayStart=10 which will
automatically cause the second page of the DataTable to be displayed.
This plug-in works on a whitelist basis - you must specify which
initialisation parameters you
want the URL search string to specify. Any parameter given in the
URL which is not listed will be ignored (e.g. you are unlikely to
want to let the URL search string specify the ajax option).
This specification is done by passing an array of property names
to the DataTable.deepLink function. If you do which to
allow every parameter (I wouldn't recommend it) you can use all
instead of an array.
Use
This plug-in can be obtained and used in multiple different ways.
Browser
This plug-in is available on the DataTables CDN:
The plug-in will then automatically register itself against a global DataTables instance. This file can also be used if you are using an AMD loader such as Require.js.
Note that if you are using multiple plug-ins, it can be beneficial in terms of performance to combine the plug-ins into a single file and host it on your own server, rather than making multiple requests to the DataTables CDN.
NPM
The plug-ins are all available on NPM (which can also be used with Yarn or any other Javascript package manager) as part of the datatables.net-plugins package. To use this plug-in, first install the plug-ins package:
npm install datatables.net-plugins
Then import datatables.net, any other DataTables extensions you need, plus the plug-in:
import DataTable from 'datatables.net';
import 'datatables.net-plugins/features/deepLink/dist/dataTables.deepLink.mjs';
Examples
// Allow a display start point and search string to be specified
new DataTable(
'#example',
DataTable.deepLink(['pageLength', 'search.search'])
);
// As above, but with a default search
var options = DataTable.deepLink(['displayStart', 'search.search']);
new DataTable(
'#myTable',
DataTable.util.object.assignDeep({
search: { search: 'Initial search value' }
}, options)
);
Version control
If you have any ideas for how this plug-in can be improved, or spot anything that is in error, it is available on GitHub and pull requests are very welcome!
- This plug-in: dataTables.deepLink.js
- Full DataTables plug-ins repository: DataTables/Plugins