我正在使用DataTables插件來使我的表互動。如何刷新數據表
該表在頁面上由PHP進行回顯。
當我向數據庫添加一條記錄時,我使用jQuery load()加載表,但這會中斷DataTables。
如何更新表格,同時仍然保持DataTables完整?
注意:我使用DOM作爲數據源而不是服務器端處理。
我正在使用DataTables插件來使我的表互動。如何刷新數據表
該表在頁面上由PHP進行回顯。
當我向數據庫添加一條記錄時,我使用jQuery load()加載表,但這會中斷DataTables。
如何更新表格,同時仍然保持DataTables完整?
注意:我使用DOM作爲數據源而不是服務器端處理。
如果要完整地重新加載整個表,請將您的初始數據表初始化代碼包裝在一個函數中。在頁面加載時調用該功能。當用ajax完全替換表格時,你可能應該刪除由插件創建的表格父div,作爲它創建的所有非表格DOm元素的包裝。如果表格ID =「example」,包裝id =「example_wrapper」。
這裏有足夠的代碼可能會幫助你順利完成任務。有個簡單的方法,只更新行,但由於請求的是一個完整的表重裝我已經按照那個
function initDataTables(){
$('#myTable').datatables({/* put all current options here*/})
}
/* within ready event of pageload */
$(function(){
initDataTables();
/* all other page load code*/
});
/* use $.get to reload table */
$.get(tableUpdateUrl, data, function(returnData){
$('#myTable').parent().replaceWith(returnData);
/* re-initalize plugin*/
initDataTables();
});
非常感謝,稍微編輯它,它完美的作品:D – 2012-03-12 21:39:37
這是一個很多額外的負載在頁面上是沒有必要的。 DataTables提供了將新行添加到數據集的方法。 – 2012-07-03 20:42:37
什麼是tableUpdateUrl? – 2013-06-05 19:36:30
你應該可以使用ajax插件。 http://datatables.net/plug-ins/api
當您創建數據表,分配結果值到一個變量:
var table = $(".something").dataTable();
當您創建新項目時,可能通過AJAX確保返回表格需要顯示的屬性。然後,在您的success
函數中,可以使用fnAddData
方法向表中添加新行。這種方法需要在值的陣列,第一個進入在第一列中,第二次在第二,等等:
success: function(response){
table.fnAddData([
response.id,
response.name,
response.description,
]);
}
可以詳細瞭解fnAddData
方法here。
你能發佈你用來設置數據表的javascript代碼嗎? – 2012-03-12 20:48:10
$( '#新')的dataTable({ \t \t \t 「iDisplayLength」:5, \t \t \t 「sPaginationType」: 「full_numbers」 \t \t});。 – 2012-03-12 20:51:05
嘗試'「bDestroy」:true' – 2012-03-12 20:53:17