How to selectively save settings using stateSave?
How to selectively save settings using stateSave?
LukasL
Posts: 27Questions: 11Answers: 0
Link to test case:
Object.assign(DataTable.defaults, {
lengthMenu: [10, 20, 50, { label: 'All', value: -1 }],
stateSave: true,
stateDuration: 0, // indefinite localStorage (never expires)
stateSaveParams: function(settings, data) {
// Keep only length (and time for validity).
data = { time: data.time, length: data.length };
},
});
Object.assign(DataTable.defaults, {
lengthMenu: [10, 20, 50, { label: 'All', value: -1 }],
stateSave: true,
stateDuration: 0, // indefinite localStorage (never expires)
stateSaveParams: function(settings, data) {
// Keep only length (entries per page); remove all other state
const savedLength = data.length;
Object.keys(data).forEach(key => {
if (key !== 'length') {
delete data[key];
}
});
data.length = savedLength; // restore it
},
});
Debugger code (debug.datatables.net):
Error messages shown:
No errors.
Description of problem:
I want to save (or load) only length setting using state save. The search value, page number, sort order, and any other setting I do not want saved.
I tried several ways to code this but it doesn't work and I just don't know what to do. I tried googling and using AI to figure it out.
How can I accomplish this?
This question has an accepted answers - jump to answer
Answers
You need to not delete the
timeparameter as well:https://live.datatables.net/pemozaze/1/edit
Allan