Вы все делаете правильно, вы просто делаете одну ошибку новичка, и ее легко пропустить.
Когда вы делаете
$("#artifacts").dataTable();
Вы создаете новую таблицу данныхпример.Datatables возвращает экземпляр объекта (с функциями API) по этому вызову, но вы нигде не храните этот экземпляр, поэтому вы теряете все ссылки на только что созданную таблицу данных.
Чтобы решить эту проблему, просто добавьтессылка на таблицу данных, которую вы создаете, вот так
var thisTable = $("#artifacts").dataTable(
{
"sPaginationType": "full_numbers",
"bJQueryUI": true
}
);
, а затем ссылка на нее в каждой функции
$.each(data.artifact, function(i,artifact){
thisTable.fnAddData(
[
artifact.artifactId,
artifact.batchId,
artifact.processId
]
);
});
Вот пример JSFiddle , чтобы увидеть его в действии.
Пример динамического добавления новой строки для datatables.net довольно плохой, так как он выполняет встроенный вызов API без необходимости добавлять ссылку.Это лучше продемонстрировано на следующем примере: мультифильтрация .
. Вы также можете прочитать об этом в их документации API .
Подсказка: этодемонстрируется в первом ряду под $