状態保存サンプル(ajax処理によるサーバ側への保存)¶
DataTablesのページ情報をサーバ側へ保存するにはstateSaveをtrueにし、「stateLoadCallback」「stateSaveCallback」を利用します。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>状態保存のサンプル(サーバへ状態保存)</title> <link rel="stylesheet" href="css/jquery.dataTables.css" type="text/css" /> <script type="text/javascript" src="./js/jquery.js"></script> <script type="text/javascript" src="./js/jquery.dataTables.js"></script> <style type="text/css"> body { background-color: #ffffe0 } </style> </head> <body> <h1>状態保存のサンプル</h1> <table id="data-bind-json-sample"> <thead> <tr> <th>カラム1</th> <th>カラム2</th> <th>カラム3</th> </tr> </thead> </table> </body> <script type="text/javascript"> var jsonData = []; for (var i = 0; i < 100; i++) { jsonData.push({ "col1":"value1-1", "col2":"value1-2", "col3":"value1-3"}); } $(function() { $("#data-bind-json-sample").DataTable({ data: jsonData , columns: [ { data: 'col1' }, { data: 'col2' }, { data: 'col3' } ] , stateSave: true // stateLoadCallbackにてページの状態をサーバより取得し、設定を実施します。 , stateLoadCallback: function (settings) { var pageState; $.ajax( { url: '/state_load', async: false, dataType: 'json', success: function (json) { pageState = json; } } ); return pageState; } , // stateSaveCallbackにてページの状態を保存します。 stateSaveCallback: function (settings, data) { $.ajax( { "url": "/state_save", "data": data, "dataType": "json", "type": "POST", "success": function () {} } ); } }); }) </script> </html>