当然这也是因为用户在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] } ] });
解决方法
这是错误的 – 如果你看看 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页;因此,寻呼将被禁用,如您的示例。
约万