Итак, я смотрю на это example и пытаюсь заставить его работать на меня.Вызов fnServerData в DataTables 1.10
Я хочу добавить параметры выбора в таблицу, когда я использую обработку на стороне сервера. Поскольку я использовал только версию 1.10, я всегда смущаюсь, когда вижу этот старый API.
Я не понимаю, как я могу использовать эту функцию в версии 1.10:
"sAjaxSource": "../examples_support/server_processing.php",
"fnServerData": function (sSource, aoData, fnCallback) {
/* ... additional variables ... */
$.getJSON(sSource, aoData, function (json) {
/* Create the select elements on the first run */
if (json.sEcho == 1)
{
$("tfoot th").each(function (i) {
/* Insert the select menu */
this.innerHTML = fnCreateSelect(json.select[i]);
/* Add the event listener for the newly created element */
$('select', this).change(function() {
oTable.fnFilter($(this).val(), i);
});
});
}
/* DataTables callback */
fnCallback(json)
});
}
converting guide просто перечисляет fnServerData
в ajax
.
Это мой код инициализации:
$('#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},
],
"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>')
});
});
}
});
Как использовать эту функцию, и как я должен переписать это работать на меня?