2014-11-26 4 views
11

Я использую JQuery DataTable и когда пользователь выбирает выпадающий он просматривает таблицу данных и фильтрует его и перерисовывает содержимое, основываясь на искомом данных:JQuery DataTables - фильтруются столбец значений

mtTable.columns().each(function() { 
    mtTable.column(22).search(searchVal, true, true).draw(); 
}); 

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

var myTable = $("#tblResults").DataTable(); 
var resultsArray = myTable.columns(colIndex).data(); 

Согласно документации, это будет возвращать все данные внутри колонны нефильтрованного. Я не могу найти функцию, чтобы дать мне массив значений столбцов только для фильтрованных данных.

ответ

30

Вы можете прочитать все о DataTables расширенный selector-modifiers здесь ->http://datatables.net/reference/type/selector-modifier

Если вы хотите, чтобы получить отфильтрованные строки только:

table.rows({ search:'applied' }).data().each(function(value, index) { 
    console.log(value, index); 
}); 

нацелить на определенный столбец, и получить только отфильтрованные значения (ваши конкретные запрос) - здесь все отфильтрованные значения из столбца # 2:

table.column(2, { search:'applied' }).data().each(function(value, index) { 
    console.log(value, index); 
}); 

См демо и с ->http://jsfiddle.net/q0e1bdcz/

Чтобы создать массив над отфильтрованных значений для определенного столбца:

var array = []; 
table.column(2, { search:'applied' }).data().each(function(value, index) { 
    array.push(value); 
}); 
console.log(array); 

Смотрите демо ->http://jsfiddle.net/q0e1bdcz/1/

+2

спасибо. Я использовал table.column (2, {search: 'apply'}). Data(), и этого достаточно для того, что мне нужно – foop

2

Вы также можете получить уникальный и сортируют данные, если у вас есть большее количество записей.

// Datatable object 
var table = $('#example').DataTable(); 

// Get Unique and Sorted values. 
table.column(3, { search:'applied' }).data().unique().sort().each(function(value, index) { 
    console.log(value, index); 
}); 

Ref: http://www.jqueryscript.net/demo/DataTables-Jquery-Table-Plugin/examples/api/multi_filter_select.html

Надеется, что это также поможет.

Смежные вопросы