0

私のデータはデータベースから来ています。いくつかの基本的なプロパティを持つアイテムデータテーブルがあります。

Item 
{ 
   ID, 
   Name, 
   Description, 
   ... 
} 

次に、多対多の関係テーブルがあります。

Parent 
{ 
   ParentID, 
   ChildID 
} 

私は各アイテムを繰り返し処理し、その子を表示しています。ネストされたリピーターを使用するのが最善だと思いますが、間違っている可能性があります。

asp:repeatersを使用して複数の階層レベルを取得するにはどうすればよいですか?ネストされたリピーターを1つしか使用したことがないので、3+を実行する方法がわかりません。

4

3 に答える 3

0

多対多の親子関係?これは意味がありません。少なくともそれらを親と呼び、子は意味がありません。それが本当に多対多である場合、それはネットワークであり、子が1つの親しかない場合、それは階層です。

前者の場合、そのように視覚化するのが良いかどうかはわかりません。複数の親を持つ子供をどのように視覚化しますか?

後者では、カスタムアイテムテンプレートでTreeViewを使用してみませんか?すべての階層を自動的に処理します。リピーターの問題は、リピーターを動的に実行していない場合(コードで作成している場合)、ネストのレベルが固定されており、必要なだけ実行できないことです。それらを動的に実行すると機能しますが、オーバーヘッドが発生します。

あなたが何を達成しようとしているのかよくわかりません。たぶん、あなたが見る必要のある最終結果についてのいくつかの詳細を提供することは役に立つでしょう。

于 2010-08-26T12:13:59.800 に答える
0

個人的には、Itemプロパティと何らかの種類のいずれかParentsまたはChildrenプロパティを使用してカスタム コントロールを作成することで、おそらくこれを行います。コントロールは に詳細を表示し、リピーターを使用して/のItem各要素を表示します。各アイテムについて、リピーターは同じコントロールを再帰的に使用してアイテムをレンダリングします。ParentsChildren

于 2010-08-26T07:34:34.387 に答える
0

私は@Kragenが言ったことをします。しかし、2 つのコンポーネントを作成するのは多すぎると本当に思う場合は、1 つのリピーターと 2 つの foreach ループをデータ バインドで使用する必要があります。2 つのリピーターを別の内部で使用することは、3 つのリピーターは言うまでもなく複雑すぎます :)。

于 2010-08-26T07:44:45.033 に答える