2011-08-08 188 views
2

我使用AJAX來更新我的表,這個過程不依賴於數據表,我想執行表刷新刷新數據表

$('#listing').dataTable({ 
     "bDestroy": true, 
      "bProcessing": true, 
    "sAjaxSource": "getlist/", 
      "bJQueryUI": true, 


      "aoColumns": [ 
        { "mDataProp": "id" },  
     { "mDataProp": "aname" },   
     { "mDataProp": "acode" }, 
     { "mDataProp": "editlink" }, 
        { "mDataProp": "deletelink" }, 

    ], 
      "aoColumnDefs": [ 
        { "bSearchable": false, "bVisible": false, "aTargets": [ 0 ] } 

    ] 



}); 

我的數據定製,以顯示爲{"aaData":[{"id":"14",及其工作很好,因爲該表正在呈現。

回答

0

您可以通過調用fnDraw()方法來更新數據表。然而,Datatables將再次從實際數據源(Ajax URI,您的情況)中讀取數據。僅限於如果bServerSide: true已設置(通過該數據源,您正在告訴Datatables所有處理都在服務器端完成)。的bServerSide: true

一個副作用是,你需要發送分頁細節(iTotalRecords & iTotalDisplayRecords,..)在Ajax響應&其他數據(見Server-side Processing文檔)。

Othre副作用是過濾不會再工作下去:(數據表不能濾除它具有部分數據

0

數據表有API在fnReloadAjax功能,你可以粘貼到你的腳本:fnReloadAjax並且你不需要啓用服務器端處理來使其工作。

儘管如此:如果你計劃合併重複刷新(即表格刷新每10秒鐘顯示「實時」數據)這樣做的最好方法是定期從AJAX源中找出修改後的數據(也許通過比較記錄中的「修改」時間戳)和使用fnAddData添加/更新/刪除這些行。對於客戶端而言,這比每次重新加載整個數據集都要便宜。