このトピックでは、MVCアプリケーションにモデル連結を使用して、TreeViewコントロールを追加し、コントロールにデータを挿入する方法について説明します。このトピックは次の3つの手順で構成されます。
次の図は、上記の手順を実行した後に表示されるMultiRowコントロールを示しています。
Property.cs
)。新しいモデルを追加する方法の詳細については、「コントロールの追加」を参照してください。Properties.cs
モデルに追加します。ここでは、Property
クラスを使用して、階層的なデータを表しています。
C# |
コードのコピー
|
---|---|
using System; using System.Collections.Generic; using System.Linq; using System.Web; public class Property { public string Header { get; set; } public string Image { get; set; } public bool NewItem { get; set; } public Property[] Items { get; set; } public static Property[] GetData() { return new Property[] { new Property { Header = "電子機器", Items = new Property[] { new Property { Header="トリマー/シェーバー" }, new Property { Header="タブレット" }, new Property { Header="携帯電話", Items = new Property[] { new Property { Header="Apple" }, new Property { Header="Motorola", NewItem=true }, new Property { Header="Nokia" }, new Property { Header="Samsung" }} }, new Property { Header="スピーカー", NewItem=true }, new Property { Header="モニター" } } }, new Property{ Header = "玩具", Items = new Property[]{ new Property{ Header = "縫いぐるみ" }, new Property{ Header = "列車セット" }, new Property{ Header = "クレーンゲーム", NewItem = true }, new Property{ Header = "プロポ" }, new Property{ Header = "玩具銃" } } }, new Property{ Header = "ホーム", Items = new Property[] { new Property{ Header = "コーヒーメーカー" }, new Property{ Header = "パンメーカー", NewItem = true }, new Property{ Header = "ソーラーパネル", NewItem = true }, new Property{ Header = "仕事台" }, new Property{ Header = "プロパングリル" } } } }; } } |
アプリケーションにTreeViewコントロールを追加するには、次の手順に従います。
新しいコントローラーの追加
TreeViewController
)。C# |
コードのコピー
|
---|---|
using <ApplicationName>.Models;
|
TreeViewController.cs |
コードのコピー
|
---|---|
public ActionResult Index() { return View(Property.GetData(Url)); } |
コントローラーのビューの追加
ビュー内で、TreeViewコントロールのインスタンスを作成し、それを.Bindメソッドを使用してデータソースに連結します。DisplayMemberPathはツリーノードに表示されるテキストを設定し、ChildItemsPathは子ノードの配列を設定します。
TreeViewController
をダブルクリックして開きます。Index()
内にカーソルを置きます。Index.cshtml |
コードのコピー
|
---|---|
@using TreeView.Models @model Property[] @(Html.C1().TreeView() .Bind(Model) .DisplayMemberPath("Header") .ChildItemsPath("Items")) |