2016-03-25 2 views
0

Я использую jQuery datatable plugin для разбивки на страницы с обработкой на стороне сервера. Страница прекрасно загружается с данными. Но если ввести какой-либо текст в поле поиска, он дает «TypeError: b undefined». Это происходит только в том случае, если число строк меньше длины страницы. Например, если длина страницы равна 10, а количество строк в результирующем наборе равно 11, тогда она не будет вызывать никаких ошибок, но если она равна 9, тогда она будет вызывать ошибку. Я использую последнюю версию JQuery и DataTable плагиновTypeError: b не определено, если количество строк в результирующем наборе меньше, чем значение pageLength

Ниже мой код

$('#example').dataTable({    
     "iDisplayLength": 100, 
     "pageLength": 100, 
     "lengthMenu": [ 10, 25, 50, 100, 500], 
     "bProcessing": true, 
     "serverSide": true, 
     "ajax": { 
       "url": "/admincp/exportdata/branch", 
       "type": "POST", 
       "cache" : false, 
       "headers": { "cache-control": "no-cache" } 
     }, 
     "columns": [ 
       { "data": "code" }, 
       { "data": "name" },      
       { "data": "action" }        
     ] 
}) 

любая помощь приветствуется.

+0

Пожалуйста, сообщите ответ от сервера в формате JSON, если количество результатов больше размера страницы. –

ответ

0

Эта проблема решается следующим образом

  1. Добавьте дополнительные пустые строки в исходных строк, так это число строк, равное длине страницы. Это приводит к тому, что количество строк для отображения и длина страницы всегда равны.

  2. Это отображает пустые строки. Чтобы этого избежать, добавьте класс в пустые строки, используя свойство «DT_RowClass», и спрячьте его в файле css.

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