Features

折りたたみ可能な列ヘッダー

折りたたみ可能な列ヘッダー

このサンプルは、MultiRowコントロールの列ヘッダーを1行に折りたたみ、個別のセルではなくグループ名だけを表示する方法を示します。

機能

設定

説明

デフォルトでは、MultiRowコントロールは複数の行から成る列ヘッダーを作成します。ここに、layoutDefinitionで定義された各セルのヘッダーが表示されます。

これらセル固有の列ヘッダーは、従来のグリッドと同様に、データのソートやフィルタ処理に使用できます。

列ヘッダーを1行に折りたたみ、個別のセルではなくグループ名だけを表示した方がよい場合もあります。
列ヘッダーを折りたたむと、個別のセルヘッダーを表示するよりもスペースの節約になります。列ヘッダーを折りたたむには、CollapsedHeadersプロパティをtrueに設定します。
その場合は、列ヘッダーが空にならないように、グループのHeaderプロパティを忘れずに設定してください。

CollapsedHeadersプロパティをnullに設定すると、グリッドにすべてのヘッダー情報(グループおよび列)が表示されます。
この場合、最初の行にはグループヘッダーが、残りの行には個々の列ヘッダーが表示されます。

using System.Web.Mvc;
using System.Collections.Generic;
using MultiRowExplorer.Models;

namespace MultiRowExplorer.Controllers
{
    public partial class MultiRowController : Controller
    {
        public ActionResult CollapsedHeaders()
        {
            ViewBag.DemoSettings = true;
            ViewBag.DemoSettingsModel = new ClientSettingsModel
            {
                Settings = new Dictionary<string, object[]>
                {
                    { "CollapsedHeaders", new object[] {"False", "True", "null"} },
                    { "ShowHeaderCollapseButton", new object[] { false, true} }
                },
                DefaultValues=new Dictionary<string, object>
                {
                    { "CollapsedHeaders", true },
                    { "ShowHeaderCollapseButton", true }
                }
            };
            return View(Orders.GetOrders());
        }
    }
}
@model IEnumerable<Orders.Order>
@{
    ClientSettingsModel settings = ViewBag.DemoSettingsModel;
}

@(Html.C1().MultiRow<Orders.Order>()
    .Id(settings.ControlId)
    .CollapsedHeaders(true)
    .ShowHeaderCollapseButton(true)
    .Bind(bl => bl.Bind(Model).DisableServerRead(true))
    .CssClass("multirow")
    .LayoutDefinition(LayoutDefinitionsBuilders.ThreeLines)
)

@section Settings{
    <script>
        function customChangeCollapsedHeaders(multirow, name) {
            switch (name) {
                case "False":
                    multirow.collapsedHeaders = false;
                    break;
                case "True":
                    multirow.collapsedHeaders = true;
                    break;
                case "null":
                    multirow.collapsedHeaders = null;
                    break;
            }
        }
    </script>
}

@section Summary{
<p>@Html.Raw(Resources.MultiRowExplorer.CollapsedHeaders_Text0)</p>

}

@section Description{
<p>@Html.Raw(Resources.MultiRowExplorer.CollapsedHeaders_Text1)</p>

<p>@Html.Raw(Resources.MultiRowExplorer.CollapsedHeaders_Text2)</p>

<p>@Html.Raw(Resources.MultiRowExplorer.CollapsedHeaders_Text3)</p>

<p>@Html.Raw(Resources.MultiRowExplorer.CollapsedHeaders_Text4)</p>

}