我一直在对数据表执行特定操作。在完成Ajax的过程中,将调用成功的fnDraw()
并刷新数据表,该数据表将直接转到数据表的起始页。由于用户不得不再次进入他/她已经执行操作的特定页面,因此这会带来糟糕的用户体验。我尝试了各种方法,但似乎唯一的方法可能是更改默认的datatables.js
。
请帮助解决问题。
最佳答案
对于jQuery DataTables 1.9,请使用fnStandingRedraw
插件。
jQuery.fn.dataTableExt.oApi.fnStandingRedraw = function(oSettings) {
if(oSettings.oFeatures.bServerSide === false){
var before = oSettings._iDisplayStart;
oSettings.oApi._fnReDraw(oSettings);
// iDisplayStart has been reset to zero - so lets change it back
oSettings._iDisplayStart = before;
oSettings.oApi._fnCalculateEnd(oSettings);
}
// draw the 'current' page
oSettings.oApi._fnDraw(oSettings);
};
$(document).ready(function() {
var table = $('#example').dataTable()
table.fnStandingRedraw();
} );
对于jQuery DataTables 1.10+,只需调用
draw(false)
即可避免重置页面。var table = $('#example').DataTable()
/* ... */
table.draw(false);