Ответ 1
Наконец-то я нашел его после того, как поиграл с DataTable
javascript-объектом и исходным кодом DataTables
.
Вы должны добавить эту строку (до или после инициализации):
$.fn.DataTable.ext.pager.numbers_length = 3;
Примечание, которое будет отображаться как
Previous 1 ... 10 Next
а не
Previous 1 2 ... 10 Next
поэтому включить эллипсы в номере длины.
Edit:
Я видел некоторые проблемы с этим решением при продвижении по страницам.
Мне пришлось переписать их функцию _numbers
следующим образом:
function _numbers(page, pages) {
var
numbers = [],
buttons = 5, // added here the number of buttons
half = Math.floor(buttons / 2);
if(pages <= buttons) {
numbers = _range(0, pages);
} else if(page <= half) {
numbers = _range(0, buttons - 2);
numbers.push("ellipsis");
numbers.push(pages - 1);
} else if(page >= pages - 1 - half) {
numbers = _range(pages - (buttons - 2), pages);
numbers.splice(0, 0, "ellipsis");
numbers.splice(0, 0, 0);
} else {
numbers.push(page); // changed this from _range(page - 1, page + 2);
numbers.push("ellipsis");
numbers.push(pages - 1);
numbers.splice(0, 0, "ellipsis");
numbers.splice(0, 0, 0);
}
numbers.DT_el = "span";
return numbers;
}
И использовал это, чтобы указать DataTables
на мою собственную функцию:
$.fn.DataTable.ext.pager.simple_numbers = function(page, pages) {
return ["previous", _numbers(page, pages), "next"];
};
Кроме того, мне пришлось скопировать их функцию _range
в файл main.js
.