2017-01-16 9 views
1

のDataTableをリロードすること3 options for using ajaxありますURLAjaxオブジェクト、およびカスタム機能のDataTableはカスタムAJAX機能

私はカスタム関数オプションを使用しています。DataTablesの作成後に別のajax関数を設定する方法を理解しようとしています。

私はajax.reloadを見ましたが、これはurl ajaxオプションでのみ動作するようです。任意のアイデアカスタム関数をリセットし、データを再読み込みする方法?一例として、


、私はこれを行うことができるようにしたい:あなたは、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) {...}) 
} 

答えて

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(); 
} 
+0

私は理解します。だから、それがうまくいくかどうか私たちに知らせてください。 – tfidelis

1

は...私が聞いてみましょうか?私はあなたが再びdataTableを作成する場合にのみ必要と思う。この場合であれば、ちょうどあなたの新しいAJAX機能を再度作成:

// Update Ajax with a new function call 
function updateAjax() { 
    dt = $('#MyTable').DataTable({ 
    ajax: function(input, callback, settings) {...} 
    }); 
} 

を、それがない場合、あなたは私のために状況を説明するだろうか?

+0

、と私はいつでもデータベースの変更をリロードします。あなたのソリューションはうまくいくと思います。しかし、別の方法をとることにしました。これは、ajax関数の参照をデータベースのグローバル変数にすることです。次に、DBが変更されるたびに、私はdt.ajax.reload()を呼び出します。 – Jillian

+0

[破棄](https://datatables.net/reference/option/destroy)オプションを設定しない限り、これは機能しません「真実」 – Sebastianb