#javascript #jquery #datatables #datatables-1.10
#javascript #jquery #таблицы данных #таблицы данных -1.10
Вопрос:
У меня есть таблица данных, в которой данные извлекаются с помощью AJAX. Затем у меня есть две функции поиска, которые фильтруют данные. Функции поиска работают нормально после работы с нефильтрованными данными. После применения фильтра я не могу очистить фильтр или применить другой, поскольку оба фильтра являются взаимоисключающими (один фильтр полностью оплачен, а другой полностью неоплачен). Я думаю, моя проблема в том, что после фильтрации данных я пытаюсь очистить или применить другой фильтр, он воздействует на подмножество данных (уже отфильтрованные данные). Как мне очистить сброс отфильтрованных данных перед применением нового фильтра и как мне сбросить фильтры. Я уже пробовал несколько решений на этом сайте, но они не сработали. Вот мои функции фильтрации.
function outstandingFees() {
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var zero = 0;
var fee = parseFloat(data[8]) || 0; // use data for the balance due column
if (fee > zero) {
return true;
}
return false;
}
);
table.draw();
}
function paidFees() {
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var zero = 0;
var fee = parseFloat(data[8]); // use data for the balance due column
if (fee === zero) {
return true;
}
return false;
}
);
table.draw();
}
function allFees() {
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var zero = 0;
var fee = parseFloat(data[8]) || 0; // use data for the balance due column
if (zero <= fee) {
return true;
}
return false;
}
);
table.draw();
}
Комментарии:
1. Вы очищаете пользовательский фильтр с помощью
$.fn.dataTable.ext.search.pop()
(последний ввод первым выводом)2. Спасибо. Я знал, что это должно быть что-то простое, чего мне не хватало. Это сработало отлично. Я добавил его в начало каждой из двух функций фильтра и использовал его в функции allFees .
3. Не могли бы вы включить это в ответ, чтобы мы могли видеть, что на этот вопрос дан ответ.
Ответ №1:
Как сказал Дэвид Конрад
$.fn.dataTable.ext.search.pop()
сработало для меня. Я просто добавил его в начало каждого метода, чтобы очистить фильтр перед применением нового.