jqGrid(sortingcolumn、sortingorder、列の幅、ツールバーの検索フィールド)の状態を保存したいとき、ユーザーがサイトを離れて戻るときにグリッドを復元するサイト。サイトを離れるとlocalStorageにjqGridの状態を保存します
私の最初の試みは、getGridParam
メソッドでデータをロードし、それをJSONでシリアル化し、JSON-Stringとしてクッキーに保存することでした。しかし、クッキーは、gridParamを保存するのに十分なスペースがありません。 そこで、私はlocalstorageを使ってGridの状態を保存することに決めました。私のコードは次のようになります:
$(window).unload(function() {
// Load GridParam
var gridData = $('#Grid').jqGrid('getGridParam')};
// Serialize it to as JSON-String
var gridDataAsString = $.toJSON(gridData);
// Save the serialized Griddata in the localStorage
localStorage.setItem("GridParam", gridDataAsString);
});
これは問題なく動作します。しかし次のステップでは、localStroageからGridParamをロードし、グリッドを復元しようとします。データのロードも問題ありません。デバッグモードでは、すべてのデータがlocalStorageから正しく読み込まれていることがわかります。しかし、setGridParam
メソッドでグリッドを復元したい場合、グリッドはすべてデフォルト値を持ちます。私のコードは次のようになります。
$(document).ready(function() {
$("#Grid").jqGrid({ /* Initialize the grid with default values */ });
var loadedGridDataAsString = localStorage.getItem("GridParam");
// Use the default value if no data exists in localStorage
if (loadedGridDataAsString != null) {
// Deserialize the JSON-String to an object
var loadedGridData = $.evalJSON(loadedGridDataAsString);
$("#Grid").jqGrid('setGridParam', loadedGridData);
$("#Grid").trigger('reloadGrid');
}
}
はあなたでしたplsはsaveGridParameters()メソッドを呼び出す場所を教えますか? –
は、データを保存する必要があるときに依存します。上記の例では、 '$(window).unload(function(){}); – woggles