2011-01-06 4 views
0

TreeViewコントロールを作成して、データベースから階層データを表示する必要があります。TreeViewプログラムでノードを作成する方法

階層オーダーは、「CategoryNodeString」および「CategoryNodeLevel」と呼ばれる私のDBの列によって指示されています。

/=ルート

例:

CategoryId CategoryNodeString CategoryNodeLevel 
1   /     0 
2   /1/     1 
3   /2/     1 
4   /1/1/    2 
5   /1/2/    2 
6   /1/1/1    3 

あなたが開始するために私のコードのサンプルを提供することができますか?みんなありがとう!

+0

なぜ同じ質問を2回投稿しましたか? http://stackoverflow.com/questions/4613607/bound-a-treeview-control-to-user-defined-complex-type-using-ef-4 –

+0

こんにちは、ここで私はEFが呼び出されていないと仮定します。それは同様のより単純なバージョンです。あなたは何か考えていますか? yuorメッセージ – GibboK

答えて

1

このデータソースでは、ツリービューを構築するのは簡単ではありません。複雑さは、ノード間の親子関係がないためです。次のようにCategoryNodeStringは、親区分のIDをお読みください:

CategoryId  ParentCategoryId Node Display String 
0    0     Parent 
1    0     SubParent 
2    0     SubParent 
3    1     Child 
4    2     Child 

このデータから次のような構造を得ることができますなど

0 (Parent) 
+--1 (SubParent) 
| +--3 (Child) 
+--2 (SubParent) 
| +--4 (Child) 

をして。このツリーの構築は、各ノードのparentCategoryIdを調べることによって、Linqからオブジェクトへと再帰的に(半)行うことができます。まず、parentCategoryIdの最小値を見つけます。そのノードを作成します(System.Web.UI.TreeNodeオブジェクトを使用)。そのparentCategoryIdを共有するすべての子をその子に追加します。次に、新しく追加された各子に対してプロセス(したがって再帰)を繰り返します。

+0

ありがとう、ありがとう、私は本当にあなたが今すぐ私は感謝することができるようにソリューションを掲載するEF 4を使用して解決策を見つけたコメントをapreciate – GibboK