FlexGrid
列のレイアウト
機能
サンプル
説明
FlexGrid にはクライアント ColumnLayout プロパティがあり、グリッド列とそのプロパティのリストを含む JSON 文字列を取得または設定します。 datamap 列はサポートされていません。 このサンプルでは、クライアントの ColumnLayout プロパティを使用して、列レイアウトをブラウザの localStorage に保持します。FlexGrid は、サーバー側での列レイアウトの保存/ロードをサポートします。 これは、列レイアウトをストレージ/データベースに保存して、ユーザーごとに異なる表示を行う場合に便利です。実装については、「ColumnLayout」のハウツーサンプルを参照してください。
これがどう動作するかを確認するには、次の手順に従います。
- いくつかの列をサイズ変更し、新しい位置にドラッグします。
- [列レイアウトの保存]ボタンをクリックし、変更をローカルストレージに保存します。
- ページをリフレッシュして元のレイアウトを復元します。
- [列レイアウトのロード]ボタンをクリックしてレイアウトをローカルストレージから復元します。
ソース
ColumnLayoutController.cs
using Microsoft.AspNetCore.Mvc; using MvcExplorer.Models; namespace MvcExplorer.Controllers { public partial class FlexGridController : Controller { public ActionResult ColumnLayout() { var model = Sale.GetData(500); return View(model); } } }
ColumnLayout.cshtml
@model IEnumerable<Sale> @section Scripts{ <script> // Save or restore column layout in 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="@FlexGridRes.ColumnLayout_SaveColumnLayout" class="btn" onclick="saveColumnLayout()" /> <input type="button" value="@FlexGridRes.ColumnLayout_LoadColumnLayout" class="btn" onclick="loadColumnLayout()" /> <c1-flex-grid id="ovFlexGrid" auto-generate-columns="false" class="grid" is-read-only="true" sorting-type="SingleColumn"> <c1-flex-grid-column binding="ID" is-visible="true"></c1-flex-grid-column> <c1-flex-grid-column binding="Start" format="@("MMM d yy")"></c1-flex-grid-column> <c1-flex-grid-column binding="End" format="@("HH:mm")"></c1-flex-grid-column> <c1-flex-grid-column binding="Country" width="@("100")"></c1-flex-grid-column> <c1-flex-grid-column binding="Product"></c1-flex-grid-column> <c1-flex-grid-column binding="Color"></c1-flex-grid-column> <c1-flex-grid-column binding="Amount" format="c"></c1-flex-grid-column> <c1-flex-grid-column binding="Amount2" format="c"></c1-flex-grid-column> <c1-flex-grid-column binding="Active"></c1-flex-grid-column> <c1-items-source initial-items-count="100" source-collection="Model"></c1-items-source> </c1-flex-grid> @section Description{ <p>@Html.Raw(FlexGridRes.ColumnLayout_Text0)</p> <p>@Html.Raw(FlexGridRes.ColumnLayout_Text1)</p> <ol> <li>@Html.Raw(FlexGridRes.ColumnLayout_Li1)</li> <li>@Html.Raw(FlexGridRes.ColumnLayout_Li2)</li> <li>@Html.Raw(FlexGridRes.ColumnLayout_Li3)</li> <li>@Html.Raw(FlexGridRes.ColumnLayout_Li4)</li> </ol> }
マニュアル