我一直在对数据表执行特定操作。在完成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);

10-04 15:11