2016-10-05 93 views
0

jQuery DataTableを使用し、jQuery DataTableにフィルタ、チェックボックスなどのツールがあり、すべてを呼び出した後にtable.ajax.reload()すべてAJAXリクエストのコールバックでレンダリングされ、チェックボックスの値が原因で保持されません。だから、すべてのリロード時にDataTableのツールバーが再描画されないようにする方法はありますか?一方、リロード後にチェックボックスの値を保持するための最善のアプローチ(隠し値やクッキーを使用する)は何ですか?リロード後にjQuery DataTableツールを再描画するのを防ぐ方法

<input type="hidden" id="key" name="Key" /> 

$(document).ready(function() { 

//code omitted for brevity 
"fnServerData": function (sSource, aoData, fnCallback) { 
    aoData.push({ "name": "all", "value": $('#key').val() });     
    $.getJSON(sSource, aoData, function (json) { 
     fnCallback(json); 
     $("div.toolbar").html('<input type="checkbox" name="GetAll" 
      id="isGetAll" value="$('#key').val()"/> Get all records'); 
    }); 
}, 
//... 



    $(document).on('change', '#isGetAll', function() { 

     if ($("#key").val()) { 
      $("#key").val('TRUE'); 
     } else { 
      $("#key").val('FALSE'); 
     } 
     table.ajax.reload(); 
    }); 
}); 
+0

@JulianoNunesSilvaOliveiraこの問題にについての任意のアイデア? –

答えて

0

データテーブルの状態を保存するプロパティで試してください。

$(document).ready(function() { 
    $('#example').DataTable({ 
     stateSave: true 
    }); 
}); 

Reference 1

Reference 2

This thread may help You.

+0

遅れて申し訳ありませんが、私は退場しました。 ** stateSave **を使用してメソッドのアンを試しましたが、すべての状態に対して、チェックボックスの選択状態が失われました。これをテストするためのコードの不要な部分をすべて削除したので、チェックボックスのchangeイベントに** table.ajax.reload(); **を残して** $( "div.toolbar")のままにしておきます。すべてのレコードを取得する); **コールバックメソッドで、入力タイプ= "チェックボックス" name = "GetAll" id = "isGetAll" value = "$( 'key')。これに加えて、** $( '#example')の後にこの行を使用しようとしました。DataTable({}); **ブロックしましたが、今回はチェックボックスがレンダリングされません。 –

+0

あなたはフィドルを投稿できますか?あなたの助けに多くのおかげです... –

+0

この問題に関するお返事お願いします? –

関連する問題