Поскольку у меня есть более 20k ~ элементов, которые нужно показать в DataTable
, я хочу заполнить его в соответствии с некоторыми параметрами, чтобы избежать большого запаздывания.CodeIgniter с DataTables ajax populate
// Clears the DataTable to avoid duplication of items
$('#contacts-table > tbody').empty();
var category_id = 5; // Just for tests
$.post('ajax_getAll', {category_id: category_id}, function(response){
// I retrieve the 'response' as json_encoded
var json = JSON.parse(response);
});
Если бы я не использовали DataTables
, традиционным способом, я бы просто сделать (для заполнения tbody
):
$.each(json, function(index, item){
var tr = "<tr>";
tr += " <td><input type='checkbox' class='checkbox'/></td>";
tr += " <td>" + item.id + "</td>";
tr += " <td>" + item.name + "</td>";
tr += "</tr>";
$('#contacts-table').prepend(tr);
});
Но этот кусок кода, хотя элементы извлекаются и успешно вставлен в DataTable, функции DataTable (например, переупорядочение, поиск и т. д.) перестают работать, и когда я использую эти функции, он автоматически удаляет всю мою таблицу tbody
.
Итак, я немного искал, и обнаружил, что я должен заполнить DataTable, используя Data attribute
.
// Since I've initialized the DataTable in the load of the jQuery
// I must destroy it so I can re-load it again
$('#contacts-table').DataTable().destroy();
$('#contacts-table').DataTable({
'bPaginate': true,
'bLengthChange': false,
'bFilter': true,
'bInfo': true,
'bAutoWidth': true,
"iDisplayLength": 30,
'aoColumnDefs': [{
'bSortable': false,
'aTargets': ['nosorting']
}],
"aaSorting": [],
'data': json, // Here I'm trying to pass the values without any success
});
С последнего кода, я получаю эту ошибку Warning: Request unknown
JSon я получаю от PHP является следующее:
[{"id":"16","name":"just testing"}, {"id":"16","name":"stackoverflow"}]
Кроме ошибки я получаю Интересно, как Я установил этот tr += " <td><input type='checkbox' class='checkbox'/></td>";
, используя DataTables
по ajax
.