如何更改DataTables jQuery插件的分页按钮的数量 [英] How to change the number of pagination buttons of the DataTables jQuery plugin
问题描述
默认情况下, DataTables
插件显示7个分页按钮(包括省略号),例如
By default, DataTables
plugin shows 7 paging buttons (including the ellipses) like
上一个 1 2 3 4 5 ... 10 下一步
我希望能够更改
上一个 1 ... 10 下一步
我在文档的任何地方都找不到。
and I can't find this anywhere in the documentation.
我找到了此插件,但它说已弃用
DataTables 1.10内置了此功能。
DataTables 1.10 has this ability built in.
但是它没有显示更改的地方。
but it doesn't show where to change this.
推荐答案
我终于在摆弄<$ c之后找到了它$ c> DataTable javascript对象和 DataTables
'源代码。
I finally found it after fiddling with the DataTable
javascript object and the DataTables
' source code.
您必须添加此行(在初始化之前或之后):
$.fn.DataTable.ext.pager.numbers_length = 3;
注意,它将显示为
上一个 1 ... 10 下一个
,而不是
上一个 1 2 ... 10 下一个
在长度数字中包括椭圆。
编辑:
在浏览页面时,我发现此解决方案存在一些问题。
I saw some problems with this solution when advancing through the pages.
我不得不重写其 _numbers
这样的函数:
I had to rewrite their _numbers
function like this:
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
转到我自己的函数:
And used this to point out DataTables
to my own function:
$.fn.DataTable.ext.pager.simple_numbers = function(page, pages) {
return ["previous", _numbers(page, pages), "next"];
};
此外,我还必须复制他们的 _range
函数放入我的 main.js
文件中。
Also, I had to copy their _range
function into my main.js
file.
这篇关于如何更改DataTables jQuery插件的分页按钮的数量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!