如何刷新DataTables

我使用DataTables插件使我的表交互式。

该表由PHP在页面上回显。

当我向DB添加记录时,我使用jQuery load()加载表,但这会破坏DataTables。

如何在保持DataTables完整性的同时更新表?

注意:我使用DOM作为数据源而不是服务器端处理。

如果完整地重新加载整个表,请将初始数据表初始化代码包装在函数中。 在页面加载时调用该函数。 当用ajax完全替换表时,你可能应该删除由plugin创建的表父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(); }); 

创建数据表时,将结果值分配给变量:

 var table = $(".something").dataTable(); 

当您创建新项目(可能是通过AJAX)时,请确保返回表格需要显示的属性。 然后,在您的success函数中,您可以使用fnAddData方法向表中添加新行。 此方法接受一个值数组,第一个列位于第一列,第二个位于第二列,依此类推:

 success: function(response){ table.fnAddData([ response.id, response.name, response.description, ]); } 

您可以在此处阅读有关fnAddData方法的更多信息。

你应该能够使用ajax插件。 http://datatables.net/plug-ins/api