機能

リモート連結

リモート連結

データを提供するリモートアクションURLにPivotEngineコンポーネントを連結します。

機能

設定

説明

このサンプルでは、集計するデータを提供するIEnumerableオブジェクトにPivotEngineを連結します。
すべてのデータがクライアントに転送されます。PivotEngineは、Wijmo 5 OLAPコントロールなどのクライアント側にあるデータを計算します。
PivotPanelコントロールとPivotGridコントロールはPivotEngineに連結されます。
PivotPanelコントロールでビュー定義を変更できます。
その結果、PivotGridコントロールに集計データが表示されます。
PivotGridコントロール内のセルをダブルクリックすると、詳細な生データがグリッドに表示されます。

データ行数が10,000より少ない場合は、Bind(data)またはBind(url)モードを使用できます。</br>そうでない場合は、BindService(url)モードを使用してください。

using C1.Web.Mvc;
using C1.Web.Mvc.Serialization;
using OlapExplorer.Models;
using System.Linq;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;

namespace OlapExplorer.Controllers.Olap
{
    partial class OlapController : Controller
    {
        private static IEnumerable<ProductData> RemoteData = ProductData.GetData(1000).ToList();
        // GET: PivotGrid
        public ActionResult RemoteBind()
        {
            OlapModel.ControlId = "remotePanel";
            ViewBag.DemoOptions = OlapModel;
            return View();
        }

        public ActionResult RemoteBind_Read([C1JsonRequest] CollectionViewRequest<ProductData> requestData)
        {
            return this.C1Json(CollectionViewHelper.Read(requestData, RemoteData));
        }
    }
}
@model IEnumerable<ProductData>
@{
    ClientSettingsModel optionsModel = ViewBag.DemoOptions;
}

<c1-pivot-engine id="remoteEngine" show-row-totals="Subtotals" show-column-totals="Subtotals">
    <c1-items-source read-action-url="@Url.Action("RemoteBind_Read")"></c1-items-source>
    <c1-view-field-collection c1-property="RowFields" items="Country"></c1-view-field-collection>
    <c1-view-field-collection c1-property="ColumnFields" items="Product"></c1-view-field-collection>
    <c1-view-field-collection c1-property="ValueFields" items="Sales"></c1-view-field-collection>
</c1-pivot-engine>

<div class="row">
    <div class="col-sm-4 col-md-4">
        <c1-pivot-panel id="@(optionsModel.ControlId)" items-source-id="remoteEngine"></c1-pivot-panel>
    </div>
    <div class="col-sm-8 col-md-8">
        <c1-pivot-grid id="indexGrid" items-source-id="remoteEngine"></c1-pivot-grid>
    </div>
</div>

@section Settings{
    @await Html.PartialAsync("_OptionsMenu", optionsModel)
}

@section Description{
    <p>@Html.Raw(OlapRes.RemoteBind_Text0)</p>

    <p>@Html.Raw(OlapRes.RemoteBind_Text1)</p>

}
@section Summary{
    <p>@Html.Raw(OlapRes.RemoteBind_Text2)</p>

}