DataTables改变了分页按钮的数量

默认情况下, DataTables插件显示7个分页按钮(包括省略号)

上一页 1 2 3 4 5 ... 10 下一页

我希望能够将此更改为更小的数字

上一页 1 ... 10 下一页

我在文档中的任何地方都找不到这个。

我找到了这个插件,但是它说它已被弃用

DataTables 1.10内置了这种能力。

但它没有显示在哪里改变它。

在摆弄了DataTable javascript对象和DataTables的源代码后,我终于找到了它。

您必须添加此行(在初始化之前或之后)

 $.fn.DataTable.ext.pager.numbers_length = 3; 

请注意 ,这将显示为

上一页 1 ... 10 下一页

并不是

上一页 1 2 ... 10 下一页

所以一定要在长度编号中包含省略号。

编辑:

我在浏览页面时看到了这个解决方案的一些问题。

我必须像这样重写他们的_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到我自己的function:

 $.fn.DataTable.ext.pager.simple_numbers = function(page, pages) { return ["previous", _numbers(page, pages), "next"]; }; 

另外,我不得不将他们的_range函数复制到我的main.js文件中。