DataTablesを使って、ブラウザ上でテーブルを表示しております。
テーブルの一番下の行にカラムごとの検索窓を設置し、column.searchを実行することでカラム単位の検索も可能にしました。そこまではよかったのですが、リロードやページ移動した際に「オーダー、現在のページ、1ページの表示数、検索文字列」をセッションでキープしようとした際、問題が起きました。
各パラメータをセッションで記憶しておき、読み込むところまではうまくいきました。オーダー、現在のページ、1ページの表示数はリロードしても維持されるよう組むことができました。しかし、DataTable初期化時に渡すoptionsで、どんなパラメータを渡せば初期状態からcolumn.searchと同様の動作を行うことができるかわからないという状況です。
###該当のソースコード
Javascript
1$("table").dataTable({ 2 "ajax":{ 3 url:"example" 4 }, 5 "processing":true, 6 "serverSide":true, 7 "columns":[/*カラム定義*/], 8 "pageLength": pageLength, // キャッシュで記憶しておいた1ページの表示数 9 "displayStart": displayStart, // キャッシュで記憶しておいた現在のページ 10 "order": [/*オーダー*/] 11 /*他にどんなパラメータを渡せばcolumn.searchと同じことができる???*/ 12});
###試したこと
非圧縮なjquery.datatables.jsをステップ実行し、どこでどんな値が展開されてサーバへのリクエストパラメータになるかを調べました。そして、aoPreSearchColsという配列の中にデータが入っていれば、サーバへのリクエストパラメータのcolumns[i][search][value]、columns[i][search][regex]に分解される、というところまでは判明しました。しかし、コードを追っているかぎり、そのaoPreSearchColsというのは一度検索を実行しないと保存(_fnSaveState)されず、optionsからパースされる処理を見つけることができませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
DataTables 1.10.7
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/23 01:23
2016/06/23 01:39