當配置了ajax 後,我每次執行rerender後都重新請求數據,導致本來時第三頁的,但重新渲染了後變回第一頁了,有辦法只重新渲染不重新請求ajax數據嗎,或重新請求時仍是第三頁
datatable我用的比較多,結合你提供的資訊
ajax重新取得目前頁碼的資料
var dt = $('#datatable').DataTable({ ... }); dt.ajax.reload(null, false); //记得这两个参数
F5之後,仍然保持目前的頁碼,這需要用一點技巧,使用localhost.hash保存頁碼、排序等資料
localhost.hash
條件:
載入 Hash 的便利操作工具: https://github.com/cowboy/jquery-bbq
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);
datatable我用的比較多,結合你提供的資訊
重新當前頁的資料
ajax重新取得目前頁碼的資料
F5刷新頁面
F5之後,仍然保持目前的頁碼,這需要用一點技巧,使用
localhost.hash
保存頁碼、排序等資料條件:
載入 Hash 的便利操作工具:
https://github.com/cowboy/jquery-bbq
如下操作