默认情况下,DataTables
插件显示7个分页按钮(包括省略号),例如
Previous 1 2 3 4 5 ... 10 Next
我希望能够将其更改为较小的数字,例如
Previous 1 ... 10 Next
我在文档的任何地方都找不到。
我找到了这个插件,但是它说它已被弃用,
DataTables 1.10具有内置的此功能。
但没有显示在何处更改此设置。
摆弄DataTable
javascript对象和DataTables
'源代码后,我终于找到了它。
您必须添加此行(在初始化之前或之后):
$.fn.DataTable.ext.pager.numbers_length = 3;
请注意,这将显示为
Previous 1 ... 10 Next
并不是
Previous 1 2 ... 10 Next
因此请确保在长度数字中包括椭圆。
编辑:
在浏览页面时,我看到了此解决方案的一些问题。
我不得不这样重写它们的_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
文件中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句