このトピックでは、MVCアプリケーションにMultiRowコントロールを追加し、コントロールにデータを挿入する方法について説明します。以下の例は、MultiRowコントロールでローカルモデル連結を行う方法を示しています。MultiRowコントロールでリモートデータ連結を行うこともできます。詳細については、「リモートデータ連結」を参照してください。
このトピックは次の3つの手順で構成されます。
次の図は、上記の手順を実行した後に表示されるMultiRowコントロールを示しています。
Orders.cs
)。新しいモデルを追加する方法の詳細については、「コントロールの追加」を参照してください。Orders.cs
モデルに追加します。ここでは、Orders
クラスを使用して、データベース内の受注データを表しています。Ordersオブジェクトの各インスタンスがMultiRowコントロール内の1つのレコードに対応します。アプリケーションにMultiRowコントロールを追加するには、次の手順に従います。
新しいコントローラーの追加
MultiRowController
)。C# |
コードのコピー
|
---|---|
using MultiRow.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; |
コントローラーのビューの追加
ビュー内で、MultiRowコントロールのインスタンスを作成し、それを.Bindプロパティを使用してデータソースに連結します。レイアウト定義のプロパティを使用すると、コントロールの列および行のレイアウトを定義できます。
MultiRowController
をダブルクリックして開きます。Index()
内にカーソルを置きます。Index.cshtml |
コードのコピー
|
---|---|
@using MultiRow.Models @model IEnumerable<Orders.Order> @section Styles{ <link rel="stylesheet" href="~/Content/CustomMultiRow.css" /> } @(Html.C1().MultiRow<Orders.Order>() .Bind(bl => bl.Bind(Model)) .GroupBy("Customer.State") .LayoutDefinition(ld => { ld.Add().Header("注文").Colspan(2).Cells(cells => { cells.Add(cell => cell.Binding("Id").Header("ID").CssClass("id").Width("150")) .Add(cell => cell.Binding("Date").Header("注文").Width("150")) .Add(cell => cell.Binding("Amount").Header("金額").Format("c").CssClass("amount")) .Add(cell => cell.Binding("ShippedDate").Header("出荷")); }); ld.Add().Header("お客様").Colspan(3).Cells(cells => { cells.Add(cell => cell.Binding("Customer.Name").Name("CustomerName").Header("お客様").Width("200")) .Add(cell => cell.Binding("Customer.Email").Name("CustomerEmail").Header("お客様のEーメル").Colspan(2)) .Add(cell => cell.Binding("Customer.Address").Name("CustomerAddress").Header("住所")) .Add(cell => cell.Binding("Customer.City").Name("CustomerCity").Header("都市")) .Add(cell => cell.Binding("Customer.State").Name("CustomerState").Header("州")); }); })) |