Datatables: как загружать данные в сетку, когда пользователь нажимает на вкладку в зависимости от условия

Вопрос:

Поэтому я работаю на веб-сайте, используя API DataTables, в котором размещена информация об устранении неполадок видео. В моей таблице данных есть все статусные, одобренные, сертифицированные и отклоненные вкладки статуса видео, которые позволяют вам перемещаться по видео с различными статусами.

Для эффективности я передаю один объект JSON “Все видео” вместо передачи в объекте JSON для каждой категории видо. Так что я пытаюсь сделать фильтр через первый столбец, который является статусом, в моей таблице “Все видео” и найти статус, который я ищу. Например, когда вы нажмете вкладку “Утвержденные”, я хочу отобразить все строки таблицы, где GRID.column(0).data() == “Approved”.

Здесь код, который у меня есть в функции pageSetUp():

     $("#VideoReviewTabs li").on("click", function (e) {
$("#VideoReviewTabs li").removeClass("active");
$(this).addClass("active");
loadSelectedList($(this).data("listname"));
});

И здесь функция loadApprovedVideosTab():

    function loadApprovedVideosTab() {
var GRID = $("#VIDEO_GRID").DataTable();
var typeCol = GRID.column(0).data();
GRID.column(0).data().filter(function (value, index) {
return value == "Approved" ? true : false;
});
}

Эта функция фильтра определенно не работает, и выбор различных вкладок ничего не делает для сетки таблицы. Функция loadApprovedVideosTab() вызывает вызов, но фильтрация, очевидно, не работает.

Будем признательны любому совету. Благодарю.

Ответ №1

Я думаю, это потому, что ваша функция ничего не возвращает… попробуйте

function filterApprovedVideosTab() {
var GRID = $("#VIDEO_GRID").DataTable();
// var typeCol = GRID.column(0).data();

return GRID.column(0).data().filter(function (value, index) {
return value == "Approved" ? true : false;
});
}

var approved = filterApprovedVideosTab();

Ответ №2

Чтобы получить Approved видеоролики, вы можете использовать search функции в соответствующем столбце, затем нарисуйте на нем:

function loadApprovedVideosTab() {
var GRID = $("#VIDEO_GRID").DataTable();
GRID.column(0).search('Approved').draw();
}

Справка.

Оцените статью
TechArks.Ru
Добавить комментарий