datatable 重新渲染 rerender 能不能不重现请求ajax 数据

发布于 2022-09-04 06:35:08 字数 98 浏览 12 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浅浅淡淡 2022-09-11 06:35:08

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

重新当前页的数据

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

var dt = $('#datatable').DataTable({
    ...
});
dt.ajax.reload(null, false); //记得这两个参数

F5刷新页面

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

条件:

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

  2. 如下操作

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);


~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文