DataTables重新加载自定义ajax函数

时间:2017-01-16 20:06:21

标签: javascript jquery ajax datatables

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) {...})
}

2 个答案:

答案 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();
}