Разбиение на страницы с данными изначально не работает

У меня есть форма поиска, которая извлекает из БД различные строки, которые затем отображаются в таблице. Код для вытягивания строк работает нормально. Я использую таблицы данных для удобного отображения. Код datatables работает, так как я вижу элементы управления поиском и т. д., а также кнопки «следующий-предыдущий» после заполнения таблицы, однако таблица, похоже, не завершает разбиение на страницы при начальной загрузке.

Текст «Отображение от ** до ** из ** записей» отсутствует, и все возвращаемые строки отображаются, однако, как только я нажимаю кнопку «Далее» или использую отображение только 10/25/50/100 раскрывающегося списка страниц, и нумерация страниц работает отлично из после этого. Я рву на себе волосы, потому что это сработало для меня вчера, и я не могу вспомнить, что я изменил с тех пор, чтобы это перестало работать:

Я инициализирую таблицы данных ниже

$(document).ready(function() {
    $('#blog-search').dataTable( {
        "aaSorting": [[ 4, "DESC" ]],
        "aoColumnDefs": [
          { "sType": "numeric-comma", "aTargets": [ 2 ] }

        ],
        "bPaginate": true,

    } );
} );

сортировка столбцов также


person Daniel Benzie    schedule 14.08.2012    source источник
comment
Текст ** to ** of ** entries не показывает единственную проблему? Это в DOM, даже если вы его не видите? Вы устанавливаете iTotalDisplayRecords или iTotalRecords ?   -  person Jeemusu    schedule 14.08.2012
comment
элемент datatables_info находится в DOM, но он пуст, однако, когда я нажимаю «Далее», например, он отображает правильные данные и начинается разбиение на страницы. Я не устанавливаю iTotalDisplayRecords или iTotalRecords, нужно ли мне это делать?   -  person Daniel Benzie    schedule 14.08.2012
comment
Не могли бы вы запустить свою таблицу через отладчик DataTables и дать нам код отладки, пожалуйста: debug.datatables.net . Кстати, у вас есть конечная запятая, которую IE отклонит.   -  person Allan Jardine    schedule 14.08.2012
comment
Я не знаю, имеет ли это значение, но DESC не работает для меня, если только оно не в нижнем регистре. "aaSorting": [[ 4, "desc" ]],. С этим во всех заглавных буквах я получаю ошибку Uncaught TypeError: Property 'string-DESC' of object #<Object> is not a function в консоли.   -  person Jeemusu    schedule 14.08.2012
comment
@AllanJardine Я обнаружил проблему теперь, когда Джимусу посоветовал, что это DESC в верхнем регистре (если вы добавите ответ, я с радостью приму его для вас). Я также удалил запятую для IE. Спасибо вам обоим :)   -  person Daniel Benzie    schedule 14.08.2012
comment
Не беспокойтесь, я написал ответ для вас. Вы знаете, как проверить свой код на наличие ошибок javascript? Я бы порекомендовал загрузить firebug для firefox, или, если у вас есть chrome, просто выполните View -> Developer -> Javascript Console, он покажет вам все ошибки, которые должны помочь вам решить любые проблемы в будущем.   -  person Jeemusu    schedule 14.08.2012


Ответы (1)


Когда я добавляю ваш код в jsfiddle, я получаю в консоли следующее сообщение об ошибке:

Uncaught TypeError: Property 'string-DESC' of object #<Object> is not a function

При дальнейшем расследовании выясняется, что проблема заключается в строке "aaSorting": [[ 4, "DESC" ]], в вашем коде. Строка сортировки должна быть в нижнем регистре, т.е. "desc" НЕ "DESC".

Рабочий код должен быть следующим:

$(document).ready(function() {
    $('#blog-search').dataTable( {
        "aaSorting": [[ 4, "desc" ]],
        "aoColumnDefs": [
          { "sType": "numeric-comma", "aTargets": [ 2 ] }

        ],
        "bPaginate": true,

    } );
} );
person Jeemusu    schedule 14.08.2012