как передать параметры при перезагрузке datatables
у меня есть datatable, который я инициализирую следующим образом:
mytable = DataTable({
ajax:{
url: "/url/getTableData",
dataSrc: ""
},
sortClasses: false,
paging: false,
scrollY: 300,
columns: cols
});
позже я хотел бы сделать
mytable.ajax.reload();
Он отлично работает, но теперь я хотел бы отправить несколько параметров в запросе. Эти параметры мне нужны только при перезагрузке, а не при инициализации таблицы. Как мне это сделать? спасибо!
1 ответов
1 - используйте preXhr.событие ДТ.
table = $('#example')
.on('preXhr.dt', function ( e, settings, data ) {
data.whateveryouwant = $("#someidhere").val()
data.anotherexample = "kittens"
} )
// then just setup your datatable as normal
.DataTable({
ajax:{
url: "/url/getTableData",
type: "GET" // This is the default value, could also be POST
},
sortClasses: false,
paging: false,
scrollY: 300,
columns: cols
});
смотрите здесь http://datatables.net/reference/event/
Вариант 2 (предпочтительно) - используйте ajax.функция данных.
table = $('#example').DataTable({
ajax:{
url: "/url/getTableData", // Change this URL to where your json data comes from
type: "GET", // This is the default value, could also be POST, or anything you want.
data: function(d) {
d.whateveryouwant = $("#someidhere").val()
d.anotherexample = "kittens"
}
},
sortClasses: false,
paging: false,
scrollY: 300,
columns: cols
});
оба варианта дают одинаковый результат. Ваш сервер не заметит разницы. Дополнительные данные будут добавлены на каждом table.ajax.reload()
. Дополнительные данные будут:
whateveryouwant
of со значением #someidhere
элемент, и
anotherexample
со значением "kittens"
Я предпочитаю 2, потому что более очевидно, что дополнительные данные добавляются по каждому запросу. Первый вариант немного подлый и не такой очевидный для кого-то, кто читает ваш код, я думаю.