asp.netとc#を使用してツリービューを作成する際に問題が発生しています。ツリービューを作成するc#asp.net - すべてのノードを展開する
私の結果が(間違った綴りまたは間違った場所については申し訳ありませんが、これは単なるテストデータである)このようなツリービューを表示しようとしている。ここで
UK
-> London
-> SouthEast
->Kent
->Essex
-> NorthEast
->Cambridge
Wales
-> Cardiff
は、以下の私のコードです:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1"
ValidateRequest="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:TreeView ID="TreeView1" runat="server" >
</asp:TreeView>
</form>
</body>
</html>
C#:
using System;
using System.Collections.Generic;
using System.Web.UI.WebControls;
using System.Collections.ObjectModel;
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
public class ViewModel
{
public string LocationName { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
ICollection<ViewModel> list = new Collection<ViewModel>();
list.Add(new ViewModel { LocationName = "UK" });
list.Add(new ViewModel { LocationName = "UK.London.SouthEast.Kent" });
list.Add(new ViewModel { LocationName = "UK.London.SouthEast.Essex" });
list.Add(new ViewModel { LocationName = "Wales.Cardiff" });
list.Add(new ViewModel { LocationName = "Wales" });
list.Add(new ViewModel { LocationName = "UK.London.NorthEast.Cambridge" });
PopulateTreeview(list);
}
private void PopulateTreeview(ICollection<ViewModel> listOfCities)
{
foreach (ViewModel vm in listOfCities)
{
TreeNode tnNode = new TreeNode();
tnNode.Text = vm.LocationName;
tnNode.Value = vm.LocationName;
tnNode.Expanded = true;
TreeView1.Nodes.Add(tnNode);
}
}
}
}
ご覧のとおり、私のテストデータは "UK.London.SouthEast.Essex"の形式です。私はDBからこのデータを取得します。私はこのデータを使用して親ノードと子ノードを構築する必要がありますが、どのように知っているのですか?これを行う方法を書いて数日間試してみました。
あなたはGoogleの検索を済ませましたか?多くの例があります。ここでは、同じ質問のStackOverFlowの例ですが、linqまたはラムダのことを理解していますか? http://stackoverflow.com/questions/447639/how-to-build-an-asp-net-treeview-from-scratch – MethodMan
それはあなたがすべて間違っているからです。 *すべての子をルートノードに追加していますが、階層を見ていなくても、どのように動作するのでしょうか? – Shai