Вы можете получить доступ к выбору следующим образом:
1) Добавьте stateSave: true
в определение инициализации DataTable. См. в этом примере .
Это приведет к тому, что все выбранные параметры будут сохранены в локальном хранилище браузера .
2) Используйте следующие logi c для доступа к локальному хранилищу браузера:
var myStorage = window.localStorage;
var searchPanes = JSON.parse(myStorage.getItem('yourStorageIndexGoesHere'));
//console.log(searchPanes); // the full JSON - large!
//console.log(searchPanes['searchPanes']['panes']); // one object per search pane
searchPanes['searchPanes']['panes'].forEach(function(pane) {
console.log('ID = ' + pane.id + ' - selected: ' + pane.selected);
});
В моем случае я использовал панели поиска, показанные в этой демонстрации .
Вот снимок экрана с некоторыми вариантами выбора:
Вот что пример кода записывает в консоль браузера для указанных выше вариантов. :
Значение данных «ID» представляет собой отсчитываемый от нуля индекс столбца. Итак, столбец 3 (индекс 2) - это столбец Office, а столбец 6 (индекс 5) - столбец Salary.
Связанные «выбранные» данные представляют собой массивы, содержащие одно или несколько значений. Вы можете перебирать массивы, чтобы получить каждое отдельное значение.
Вам нужно будет заменить yourStorageIndexGoesHere
фактическим именем вашей записи в хранилище. Самый простой (ручной) способ найти это - выполнить фильтр с помощью SearchPanes, а затем открыть инструменты браузера (обычно F12). Затем (предполагая FireFox в моем случае) перейдите в Storage> Local Storage> и выберите соответствующий ключевой текст.
Указывает на примечание:
a) Это предполагает вы согласны активировать функцию "локального хранилища". Это означает, что браузер запомнит последний примененный фильтр и повторно применит его, когда пользователь вернется на страницу браузера DataTable. Если пользователям не нужна эта функция, мое решение вам не подойдет.
б) Я не могу посоветовать вам, где вам нужно разместить JavaScript, который я предоставил, потому что я не знать, что вы хотите делать с этой информацией. Но, например, вы можете использовать его после каждого события draw()
- в этом случае см. Здесь .