angular.js - datatable 重新渲染 rerender 能不能不重现请求ajax 数据

【字号: 日期:2022-12-26浏览:20作者:雯心

问题描述

当配置了 ajax 后,我每次执行rerender后都重新请求数据,导致本来时第三页的,但重新渲染了后变回第一页了,有办法只重新渲染不重新请求ajax数据吗,或重新请求时仍然是第三页

问题解答

回答1:

datatable我用的比较多,结合你提供的信息

重新当前页的数据

ajax重新获得当前页码的数据

var dt = $(’#datatable’).DataTable({ ...});dt.ajax.reload(null, false); //记得这两个参数F5刷新页面

F5之后,仍然保持当前的页码,这需要用一点技巧,使用localhost.hash保存页码、排序等数据

条件:

加载 Hash 的便捷操作工具: https://github.com/cowboy/jquery-bbq

如下操作

var _config = { displayStart: 0, pageLength: 10, order: [], drawCallback: function( settings ) {//绘制好之后,将状态写到Hash上面,翻页,排序的时候也会保持状态var config = { displayStart: settings._iDisplayStart, pageLength: settings._iDisplayLength, search: {search: settings.oPreviousSearch.sSearch}, order: []};settings.aLastSort.forEach(function(v){ config.order.push([v.col, v.dir]);});$.bbq.pushState(config); }, .....};var config = $.bbq.getState();config = $.extend(true, _config, config);var dt = $(’#datatable’).DataTable(config);

相关文章: