DataTables有3 options for using ajax:网址, ajax对象和自定义功能。
我正在使用自定义函数选项,我试图弄清楚在创建DataTables之后如何设置不同的ajax函数。
我已经看过ajax.reload
,但这似乎只适用于 url ajax选项。知道如何重置自定义函数并重新加载数据吗?
举个例子,我希望能够做到这一点:
// Create DataTable
dt = $('#MyTable').DataTable({
ajax: function(input, callback, settings) {...}
});
// Update Ajax with a new function call
function updateAjax() {
// reload with new ajax function.
dt.ajax.reload(function(input, callback, settings) {...})
}
答案 0 :(得分:1)
让我问一下......为什么你需要重置你的ajax功能?我认为只有在再次创建dataTable时才会需要它。如果是这种情况,只需使用新的ajax函数再次创建它:
// Update Ajax with a new function call
function updateAjax() {
dt = $('#MyTable').DataTable({
ajax: function(input, callback, settings) {...}
});
}
如果不是这样,你能为我解释一下情况吗?
答案 1 :(得分:1)
我认为tfidelis的答案也会奏效,但我最终走的是不同的路线:
// Define variable globally
var myGlobalState = ...;
// Create DataTable
var dt = $('#MyTable').DataTable({
ajax: function(input, callback, settings) {
doSomething(myGlobalState);
}
});
// Update Ajax when myGlobalState changes
function updateMyGlobalState() {
myGlobalState = ...;
dt.ajax.reload();
}