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
文件中。