Подтвердить что ты не робот

Как изменить количество строк при отображении результатов поиска по алфавиту

Я использую DataTables для создания таблицы, которая может динамически фильтровать контекст. Я следую основному примеру здесь.

Тем не менее, я хочу сделать одну настройку: отобразить результаты в алфавитном порядке в моей таблице с "строкой заголовка" для каждой буквы алфавита. Например:

A
- Apple
- Avocado
B
- Bear
- Button
C
- Car

Я сделал это успешно (используя Django templating на стороне сервера для вывода), но нижний колонтитул Datatables показывает по умолчанию, теперь неверен, поскольку он подсчитывает строки заголовков. В приведенном выше примере он гласит:

Showing 1 to 8 of 8 entries 

Когда он должен читать:

Showing 1 to 5 of 5 entries.

Копаем дальше, доступ к информационному результату осуществляется через API как "language": {"info": "Showing START to END of TOTAL entries",}.

У меня есть возможность подсчитывать и сохранять строки заголовков в виде переменной (например, var headercount = 3) из моего шаблона Django.

Как изменить START, END и TOTAL в API DataTables, чтобы они были точными на каждой странице при циклическом переходе через?

4b9b3361

Ответ 1

РЕШЕНИЕ № 1

Вы можете использовать infoCallback для определения функции, которая будет вызываться, когда информация о таблице будет отображаться.

Например, поведение по умолчанию может быть достигнуто с помощью кода ниже.

var table = $('#example').DataTable({
   "infoCallback": function(settings, start, end, max, total, pre){
      return "Showing " + start + " to " + end + " of " + total + " entries"
         + ((total !== max) ? " (filtered from " + max + " total entries)" : "");
   }        
});

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

Смотрите этот jsFiddle для кода и демонстрации.

РЕШЕНИЕ # 2

Альтернативным решением было бы использовать JavaScript, а не статический HTML-код для алфавитной таблицы, аналогично Пример группировки строк.

Затем информационная панель будет содержать правильные цифры автоматически, поскольку строки заголовков динамически добавляются как дополнительные узлы, которые не учитываются DataTables в виде строк.

Смотрите этот jsFiddle для кода и демонстрации.

РЕШЕНИЕ № 3

Используйте AlphabetSearch plugin, который добавляет поддержку поиска в алфавитном порядке.