FlexGridはクライアントのColumnLayoutプロパティを備えており、これによって列レイアウトをブラウザのlocalStorageに保存します。ColumnLayoutは、グリッド列とそのプロパティの一覧を含むJSON文字列を取得または設定します。FlexGridでは、datamap列はサポートされていません。
この動作を確認するには、次の操作を実行します。
FlexGridは、サーバー側での列レイアウトの保存/ロードをサポートします。これは、ユーザーごとに異なるビューを表示するために列レイアウトをデータベースに保存する必要がある場合に便利です。
次の図は、ColumnLayoutプロパティを使用してFlexGridのレイアウトを保存したときのFlexGridを示しています。この例では、「クイックスタート」セクションで追加されたSale.csモデルをデータソースとして使用します。
次のコード例は、FlexGridで列レイアウトの保存とロードを設定する方法を示します。
| C# |
コードのコピー
|
|---|---|
public ActionResult Index() { var model = Sale.GetData(500); return View(model); } |
|
| Razor |
コードのコピー
|
|---|---|
@using MVCFlexGrid_JP.Models
@using C1.Web.Mvc.Grid
@model IEnumerable<Sale>
<script>
// localStorageに列のレイアウトを保存または復元します。
function saveColumnLayout() {
var grid = wijmo.Control.getControl("#ovFlexGrid");
localStorage['columns'] = grid.columnLayout;
}
function loadColumnLayout() {
var grid = wijmo.Control.getControl("#ovFlexGrid"),
columnLayout = localStorage['columns'];
if (columnLayout) {
grid.columnLayout = columnLayout;
}
}
</script>
<input type="button" value="列のレイアウトを保存" class="btn" onclick="saveColumnLayout()" />
<input type="button" value="列のレイアウトをロード" class="btn" onclick="loadColumnLayout()" />
@(Html.C1().FlexGrid<Sale>()
.Id("ovFlexGrid")
.AutoGenerateColumns(true)
.AllowSorting(true)
.SelectionMode(SelectionMode.Cell)
.Bind(bl => bl.InitialItemsCount(100).Bind(Model))
.CssClass("grid")
.IsReadOnly(true)
)
|
|