2015-10-13 46 views
0

我使用datatables.net用于创建数据表(jQuery的)数据表的初始化 - 为防止2号后回传

我试图创建DINAMIC从服务器端的数据表我(DT)头的需要。发生什么事情是,在我得到数据和列标题信息的第一篇文章后,我有第二篇文章到服务器(这是不相关的,因为我已经有我的数据)。所以我禁用它,但后来我的DT没有正确初始化 - 我失去了“导航按钮和分页信息显示为-1 -1的总记录的示例1

是否有任何方法来防止第二次回发,但有一个“适当的” DT初始化?在这一点上我需要设置oTable.fnDraw(假),以保持一个正确的初始化

this.initialize = function() { 

    internalHtmlID = getHtmlIdentifier(id); 

    $.ajax({ 
     method: "GET", 
     url: url 
    }) 
    .done(function (data) { 
     internalHtmlID = getHtmlIdentifier(id); 
     var oTable = $('' + internalHtmlID + '').dataTable({ 
      "aaSorting": [[0, "desc"]], 
      "bServerSide": true, 
      "processing" : true, 
      "deferLoading": -1, 
      "aaData": data.aaData, 
      //"aaData": null, 
      "aoColumns": data.aoColumns, 

      "ajax": { 
       "url": url, 
       "dataType": "json" 
      } 

     }); 
     oTable.fnDraw(false); 
    }) 
    .fail(function (msg) { 

    }); 
}; 

回答

0

SOLUTION

你可能想厕所k使用deferLoading来延迟服务器端数据的加载直到第二次绘制。

var oTable = $('' + internalHtmlID + '').dataTable({ 
    "aaSorting": [[0, "desc"]], 
    "bServerSide": true, 
    "processing" : true, 
    "deferLoading": data.iTotalRecords, 
    "aaData": data.aaData, 
    "aoColumns": data.aoColumns, 
    "ajax": { 
     "url": url, 
     "dataType": "json" 
    } 
}); 

DEMO

示范

+0

this jsFiddle该死。 我有它,但将其设置为-1(愚蠢的错误) –

+0

@ dr.Xis,更正了我的代码,出现了一个错字。 –