2012-12-17 36 views
0

我使用DataTables插件從mysql表中檢索數據並顯示它們。爲此,我使用他們的服務器端處理代碼來檢索所有數據。到目前爲止,它工作正常。現在,我每分鐘檢查一次數據庫是否插入新記錄。如果新記錄已插入數據庫,我正在調用數據表函數。當時它清除整個記錄並用新插入的記錄顯示記錄,使其看起來像整個頁面加載。我們可以做到不清除現有數據嗎?或者我們可以在不清除記錄的情況下將新插入的記錄添加到現有記錄中?或者我該如何處理這一個?不清除Ajax調用中的現有記錄 - DataTables

這裏是我的代碼

$('#example').dataTable({ 
        "bProcessing": false, 
        "bServerSide": true, 
        "sPaginationType": "full_numbers", 
        "iDisplayLength":10, 
        "bDeferRender": true, 
        "bFilter": false, 
        "bSort": false, 
        "bInfo": true, 
        "sAjaxSource": #PHP_PATH#/json_data" 
        }); 
+0

如果單/幾行,你可以嘗試使用jQuery阿賈克斯手動讓他們並添加手動使用'fnAddData' – Daniel

+0

@ Daniel-很可能這將是一個單/雙行。 bt在他們的文檔fnAddData中(http://datatables.net/ref#fnAddData)僅適用於客戶端處理。 –

+0

你在使用bServerSide Processing進行什麼? – bPratik

回答

1

對於你正在努力實現,我也建議調查有關SignalR - 這真棒!

你在用什麼bServerSide處理?

第一次生成頁面並將其發送到客戶端時,數據表將使用當時最新的數據進行渲染。之後,在每個後續的ajax調用中,如果您的服務器只發送新數據,則您只需在成功/完成回調中調用以下方法即可。

function AddRow(row) { 
    $('#example').dataTable().fnAddData([ 
     row[0], 
     row[1], 
     row[2]]); 
} 

$.ajax({ 
    //... 
    success: function(data) { 
     //assuming data = ["COL.1", "COL.2", "COL.3"] 
     AddRow(data); 
    } 
    //... 
});​ 
+0

讓我試試這個 –