機能

リモート連結

リモート連結

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

機能

設定

説明

このサンプルでは、集計するデータを提供するリモートアクションURLにPivotEngineを連結します。
すべてのデータがクライアントに転送されます。PivotEngineは、クライアント側でデータを計算します。
PivotPanelコントロールとPivotGridコントロールはPivotEngineに連結されます。
PivotPanelコントロールでビュー定義を変更できます。
PivotGridコントロールは、集計データの変更を反映します。
PivotGridコントロール内のセルをダブルクリックすると、詳細な生データがグリッドに表示されます。

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

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

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.DemoSettingsModel = OlapModel;
            return View();
        }

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

@(Html.C1().PivotEngine().Id("remoteEngine")
		.ShowRowTotals(ShowTotals.Subtotals)
		.ShowColumnTotals(ShowTotals.Subtotals)
		.Bind(Url.Action("RemoteBind_Read"))
		.RowFields(pfcb => pfcb.Items("Country"))
		.ColumnFields(cfcb => cfcb.Items("Product"))
		.ValueFields(vfcb => vfcb.Items("Sales")))

<div class="row">
    <div class="col-sm-4 col-md-4">
        @Html.C1().PivotPanel().Id(optionsModel.ControlId).ItemsSourceId("remoteEngine")
    </div>
    <div class="col-sm-8 col-md-8">
        @Html.C1().PivotGrid().Id("indexGrid").ItemsSourceId("remoteEngine")
    </div>
</div>

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

<p>@Html.Raw(Resources.Olap.RemoteBind_Text1)</p>

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

}