自己参照カテゴリテーブルから無限階層カテゴリツリーを構築し、レンダリング

StackOverflow https://stackoverflow.com/questions/2628964

質問

私は、各カテゴリは、私はそうのような、マルチレベルのHTMLリストとして表示することを、他のカテゴリのCategoriesを参照することができParentIdを持っているCategoryIdテーブルを持っています

<ul class="tree">
    <li>Parent Category
        <ul>
            <li>1st Child Category
                <!-- more sub-categories -->
            </li>
            <li>2nd Child Category
                <!-- more sub-categories -->
            </li>
        </ul>
    </li>
</ul>

現在、私は再帰的に部分的なビューをレンダリングし、次のカテゴリの下に渡しています。それは素晴らしい作品が、私はビューでクエリを実行していますので、それは間違っています。

どのように私は木のオブジェクトにリストをレンダリングし、迅速な表示のために、私はすべてのリストを必要とするたびに、それをキャッシュすることができ、階層的なカテゴリ?

役に立ちましたか?

解決

自己参照であるビューモデルクラスを作成します。

移入それ適切なモデルクラス内(または多分あなたのDataContextパーシャルクラスの)ビューで実行されたクエリを使用します。

ラップCacheでチェックし、格納結果この方法でクエリを行う方法。

を確認してください変更はカテゴリツリーに行われるたびにキャッシュを無効ます。

クエリは、クエリ(ツリーレベルにつき1)の多くを実行すると、

、その後、フラットリストとしてカテゴリテーブルの内容を取得して、あなたのビューモデルクラスにそれを投影するオブジェクトにLINQを使用することを検討します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top