5

テーブルと「ホーム」と「戻る」の2つのボタンを持つjspがあり、jquery.datatable.jsをインポートしました。

「ホーム」をクリックすると、ページネーションやフィルターが保存されずにページが読み込まれます。「戻る」をクリックすると、テーブルにすべてのフィルターとページネーションが保存されます。

データ テーブルの初期化中に「bStateSave」フラグを true に設定しようとしました。これにより、常にテーブルにフィルターとページネーションが読み込まれます。

「戻る」ボタンをクリックすると保存された状態でテーブルをロードし、「ホーム」ボタンをクリックすると元の状態でテーブルをロードする方法はありますか

4

1 に答える 1

4

DataTables 1.10 の場合:

以下は、状態の保存に関連する DataTables 1.10 のAPI 関数です。

state()
最後に保存されたテーブルの状態を取得します

state.clear()
テーブルの保存された状態をクリアします。

state.loaded()
初期化中にロードされたテーブルの状態を取得します。

state.save()
状態の保存をトリガーします。

stateSave: true状態の保存を有効にするには、初期化オプションが必要です。次に、ユーザーが「ホーム」ボタンをクリックすると$('#example').DataTable().state.clear()、保存された状態をクリアするために呼び出すことができます。

DataTables 1.9 以前の場合:

残念ながら、保存された状態をクリアするための直接的な API メソッドはありません。

bStateSave: true状態の保存を有効にするには、初期化オプションが必要です。

オプション 1: document.cookie を使用する:

以下は、状態データを含む Cookie をクリアするためのハックです。ユーザーが「ホーム」ボタンをクリックすると、以下のコードを実行する必要があります。重要:exampleテーブル ID に置き換えます。

// Reset current state
document.cookie = name + 'SpryMedia_DataTables_' + 'example' + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';

オプション 2: fnStateLoadParams を使用する:

または、fnStateLoadParams コールバック関数を使用して、状態データをいつロードまたは無視するかを決定することもできます。ページの読み込み時に、変数にtrueまたはfalseをそれぞれ割り当てて、状態を読み込むか無視するかを決定します。loadStateParams

$(document).ready( function() {
  $('#example').dataTable( {
    "bStateSave": true,
    "fnStateLoadParams": function (oSettings, oData) {
       // Disallow state loading by returning false  
       var loadStateParams = false;

       return loadStateParams;
    }
  });
});
于 2015-06-12T15:49:46.260 に答える