JQuery DataTables .Net服务器端分页问题

前端之家收集整理的这篇文章主要介绍了JQuery DataTables .Net服务器端分页问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我现在正在为一个工作中的应用程序进行一个错误修复,在那里,以前的开发人员(自从走了以后)并没有打扰在专门列出数据结果的页面分页数据结果。

当然这也是因为用户在IE中看到长时间运行的脚本错误而令人难堪。这与数据量大小相结合,使网页几乎没有用。

尽快解决这个问题,而且他们已经很好了。该网站是使用DataTables开发的.NET MVC 2站点,以在客户端上添加搜索/排序/分页功能。我刚刚完成了一个类似的任务,使用jqGrid,所以这将是比较直接的。除了一个小问题,我不能为我的生活获得页面链接生成

快速查看结果:

结果知道这个查询中有2086条记录:

但是不会生成页面链接

我的动作方法是通过返回JSON

return Json(new
              {
                 param.sEcho,iTotalRecords = totalRecords,iTotalDisplayRecords = filteredContracts.Count(),aaData = result
              },JsonRequestBehavior.AllowGet);

哪里

param.sEcho =“1”,
iTotalRecords = 2086,
iTotalDisplayRecords = 25,
而aaData是要显示的数据的数组结果

要彻底,他是datatable初始化语句:

$("#tblToDoItems").dataTable({
        'bServerSide': true,'bProcessing': true,'sAjaxSource': '/Home/GetContractList',"bJQueryUI": true,"bAutoWidth": false,"bPaginate": true,"sPaginationType": "full_numbers","iDisplayLength": 25,/* make the first and last columns not sortable */
        "aoColumnDefs": [
            { "bSortable": false,"aTargets": [0,-1] }
        ]
    });

我是否缺少一些可以防止DataTables通过服务器端数据检索正确生成分页的设置?

解决方法

您的iTotalDisplayRecords等于25,因此数据表认为在服务器端只有25个合同,不需要第二页,因为它们都已经显示当前页面上。
这是错误的 – 如果你看看 JQuery MVC tutorial部分实现服务器端页面,你会看到有三个数字:

> iTotalRecords = allCompanies.Count()表示数据库中的所有条目(在您的情况下为2086)
> iTotalDisplayRecords = filteredCompanies.Count()表示与当前搜索条件匹配的记录数。如果没有使用过滤器,这个数字应该与iTotalRecords 2086相同,但是在你的情况下它是25。
> result.Count – 这是25.这个数字不会在JSON响应中传递,因为DataTables已经知道每页应该有25个记录。

如果将all.Count代替,则将.Count放入iTotalDisplayRecords DataTables中将显示分页。 iTotalDisplayRecords和iTotalRecords用于显示消息
显示1到25的iTotalDisplayRecords(总共iTotalRecords)”

如果iTotalDisplayRecords等于25,DataTables将显示消息“显示1到25的25(总共iTotalRecords)”,并假设没有第2页;因此,寻呼将被禁用,如您的示例。

约万

猜你在找的jQuery相关文章