首頁  >  問答  >  主體

angular.js - datatable 重新渲染 rerender 能不能不重現請求ajax 數據

當配置了ajax 後,我每次執行rerender後都重新請求數據,導致本來時第三頁的,但重新渲染了後變回第一頁了,有辦法只重新渲染不重新請求ajax數據嗎,或重新請求時仍是第三頁

我想大声告诉你我想大声告诉你2735 天前742

全部回覆(1)我來回復

  • PHPz

    PHPz2017-05-15 17:11:55

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

    回覆
    0
  • 取消回覆