JQuery dataTable 分页显示问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery dataTable 分页显示问题相关的知识,希望对你有一定的参考价值。
dataTable(
"bProcessing": true,
"bStateSave": false,
"sPaginationType": "full_numbers",
"bPaginate": true,
"bLengthChange": true,
"bSort": false,
"aLengthMenu": [25, 50, 100],
"iDisplayLength": 25,
"bAutoWidth": false,
"oLanguage":
"sLengthMenu": "每页显示 _MENU_ 条记录",
"sZeroRecords": "对不起,查询不到任何相关数据",
"sInfo": "当前显示 _START_ 到 _END_ 条,共 _TOTAL_ 条记录",
"sInfoEmtpy": "找不到相关数据",
"sProcessing": "正在获取数据,请稍后...",
"sSearch": "搜索:",
"sInfoEmpty": "显示 0 至 0 共 0 项",
"oPaginate": "sFirst": "第一页", "sPrevious": "上一页 ", "sNext": "下一页 ", "sLast": "末页 "
,
"aoColumns": [
"sDefaultContent": "<div class='pull-right row-collapsed' onclick='ShowToggleAction(this)'></div>",
"mData": "xxxx" ],
"aaData": paramsResDb);
这样设置怎么显示不了分页的效果~!
datatable dt=new datatable();
dt.columns.add(new datacolumn("列名"))
添加数据方法()
{
datarow dr=dt.newRows();
dr["xxx"]=xxx;
...
dt.Rows.Add(dr);
}本回答被提问者和网友采纳
如何更改 DataTables jQuery 插件的分页按钮数量
【中文标题】如何更改 DataTables jQuery 插件的分页按钮数量【英文标题】:How to change the number of pagination buttons of the DataTables jQuery plugin 【发布时间】:2014-08-14 13:10:13 【问题描述】:默认情况下,DataTables
插件显示 7 个分页按钮(包括省略号) 喜欢
上一个 1 2 3 4 5 ... 10 下一个
我希望能够将其更改为较小的数字,例如
上一个 1 ... 10 下一个
我在文档中的任何地方都找不到这个。
我找到了this plugin,但它说这是已弃用,而且
DataTables 1.10 内置了这种能力。
但它没有显示在哪里进行更改。
【问题讨论】:
你会考虑php分页吗? 分页数据是在php中完成的,问题是关于插件创建的界面 【参考方案1】:我在摆弄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
:
$.fn.DataTable.ext.pager.simple_numbers = function(page, pages)
return ["previous", _numbers(page, pages), "next"];
;
另外,我必须将他们的 _range
函数复制到我的 main.js
文件中。
【讨论】:
如何在我的数据表函数中使用它..在哪里应用这个函数..请告诉我..谢谢 我离开了Web开发,但答案很清楚,只要把它放在你的主js文件中。 感谢您回复“Iulian Onofrei”。但这仅适用于第一次加载数据。如果我们点击页号。分页重置为相同的默认值.. @ShrikantBhardwaj,我不再使用这个,所以我帮不了你。 没关系。我在分页中使用了输入类型。并感谢您的回复【参考方案2】:显然,DataTableJS 的理想最小值是:
$.fn.DataTable.ext.pager.numbers_length = 5;
【讨论】:
【参考方案3】:与https://www.gyrocode.com/articles/jquery-datatables-pagination-without-ellipses/结合设置
在脚本加载后添加以下内容
<script>
$.fn.DataTable.ext.pager.numbers_length = 3;
$.fn.DataTable.ext.pager.full_numbers_no_ellipses = function (e, r) var a = [], n = $.fn.DataTable.ext.pager.numbers_length, t = Math.floor(n / 2), l = function (e, r) var a; void 0 === r ? (r = 0, a = e) : (a = r, r = e); for (var n = [], t = r; t < a; t++)n.push(t); return n ; return (a = r <= n ? l(0, r) : e <= t ? l(0, n) : e >= r - 1 - t ? l(r - n, r) : l(e - t, e + t + 1)).DT_el = "span", ["first", "previous", a, "next", "last"] ;
</script>
【讨论】:
以上是关于JQuery dataTable 分页显示问题的主要内容,如果未能解决你的问题,请参考以下文章
jQuery dataTables:无法在 IE 中正确显示 full_numbers 分页