2016-05-07 1 views
1

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

var table = $('#example').DataTable(); 
//#column3_search is a <input type="text"> element 
$('#column3_search').on('keyup', function() { 
    table.columns(3).search(this.value).draw(); 
}); 

Как я вернуться к примеру только первые 3 результаты из этой категории?

ответ

0

Используйте опцию pageLength

$('#example').dataTable({ 
    "pageLength": 3 
}); 

или попробуйте добавить page.len(3) до того .draw() (док: https://datatables.net/reference/api/page.len())

table.columns(3).search(this.value).page.len(3).draw(); 

Решение с пользовательской фильтрации (как в https://www.datatables.net/examples/plug-ins/range_filtering.html)

DataTables предоставляет API-метод для добавления собственных функций поиска, $.fn.dataTable.ext.search. Это массив функций (нажмите на свой собственный ), который будет выполняться в течение времени рисования таблицы, чтобы увидеть, должна ли быть включена определенная строка или нет.

Использование

$.fn.dataTable.ext.search.push(
    function(settings, searchData, index, rowData, counter) { 
     var maxIndex = 4; 
     if (counter <= maxIndex) { 
     return (true); 
     } 
     return false; 
    } 
); 

здесь я поставил maxIndex = 4 включить только первые 5 строк результатов поиска.

Демо здесь: https://jsfiddle.net/user2314737/nk0m2ekv/

+0

Это Jst добавить Paginator и поместить другие строки на других страницах. но это хорошее начало –

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