Я использую datatables с обработкой serveride. Мне нужно отправить дополнительные данные клиенту, так как мне понадобится заполнить мои фильтры. Мои основные данные, которые я хочу отобразить в таблице, - это список со словарями.Несколько объектов, отправленных в datatables, инициализировать как?
Когда я просто отправить этот список этот код работает:
$('#dataTables-outputTest').DataTable({
"processing": true,
"serverSide": true,
"ajax": "/TestData/data-source",
"columns": [
{ "data": "thing1",
"searchable": true},
{ "data": "thing2",
"searchable": true},
...
{ "data": "link",
"searchable": false,
"orderable": false},
],
теперь я хочу, чтобы отправить дополнительные данные и по-прежнему иметь возможность просто отобразить эти элементы.
Новый JSON будет выглядеть следующим образом:
{'objlist': [{'thing1': '1thing1', 'thing2': '1thing2'},
{'thing1': '2thing1', 'thing2': '2thing2'}],
'select':[list1, list2]}
Может быть некоторые опечатки там, но это будет ДИКТ с двумя объектами. Один из них - список диктонов, а также список списков.
Как я могу инициализировать мой datatable для использования параметров objlist, как это было раньше, без дополнительного объекта? И как я могу достичь значений в выбранном объекте?
Редактировать здесь:
"initComplete": function() {
this.api().columns().every(function() {
var column = this;
var select = $('<select><option value=""></option></select>')
.appendTo($(column.footer()).empty())
.on('change', function() {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
column
.search(val ? '^'+val+'$' : '', true, false)
.draw();
});
column.data().unique().sort().each(function (d, j) {
select.append('<option value="'+d+'">'+d+'</option>')
});
});
}
Это код, который заполнит мой выбор прямо сейчас. Я хочу изменить его, чтобы использовать списки из моего объекта select для разных столбцов.