FlexGrid では、DisableServerRead プロパティの値を True に設定することで、サーバー側のソート、ページング、フィルタ処理、またはスクロールを無効にできます。デフォルトでは、この値は False に設定されています。任意の操作に対してこのプロパティ値を true に設定すると、すべての現在の項目がクライアント側に転送され、サーバー側イベントは無効になります。ネットワーク呼び出しを実行せずにクライアント側の操作を直接実行できます。
次の図は、DisableServerRead プロパティを設定してページサイズを 10 に設定した FlexGrid を示しています。この例では、「クイックスタート」セクションで追加した Sale.cs モデルを使用します。
次のコード例は、FlexGrid でサーバー読み取りを無効にする方法を示します。この例では、「ページング」トピックで追加した _Pager.cshtml
ページを使用します。
DisableServerReadingController.cs
C# |
コードのコピー
|
---|---|
public ActionResult DisableServerRead(FormCollection collection) { IValueProvider data = collection; if (CallbackManager.CurrentIsCallback) { var request = CallbackManager.GetCurrentCallbackData<CollectionViewRequest<object>>(); if (request != null && request.ExtraRequestData != null) { var extraData = request.ExtraRequestData.Cast<DictionaryEntry>() .ToDictionary(kvp => (string)kvp.Key, kvp => kvp.Value.ToString()); data = new DictionaryValueProvider<string>(extraData, CultureInfo.CurrentCulture); } } return View(Sale.GetData(20)); } |
DisableServerRead.cshtml
Razor |
コードのコピー
|
---|---|
@using MVCFlexGrid_JP.Models @using C1.Web.Mvc.Grid @model IEnumerable<Sale> @(Html.C1().FlexGrid<Sale>() .AutoGenerateColumns(false) .Columns(columns => { columns.Add(column => column.Binding("開始日").Format("yyyy年/MM月/dd日")); columns.Add(column => column.Binding("製品名").AllowResizing(false)); columns.Add(column => column.Binding("金額").Format("c")); columns.Add(column => column.Binding("金額2").Format("c")); }) .CssStyle("height", "auto") .Id("dsrPagingGrid") .CssClass("grid") .IsReadOnly(true) .Filterable<Sale>() .Bind(b => b.DisableServerRead(true) .PageSize(10) .Bind(Model)) ) @Html.Partial("_Pager", "dsrPagingGrid") |