2

したがって、データをツリー形式で表示するこのレガシー コードがあります。スペーサー画像を使用してツリーの各ノードをパディングします (...yup..ug)

残念ながら、これらの画像の使用は、使用を余儀なくされている社内の UserControl によって制御されています (ただし、基本的には Web.UI.WebControls.Image から派生するだけです)。

さて、何千ものノードを持つ巨大なツリーがあり、それぞれが 4 レベル以上の深さであることがわかりました。これは、ページを描画するたびに約 10,000 のパディング イメージを作成していることを意味し、かなりの時間を費やしています。

現在の私の解決策は、これらのイメージを多数静的に事前に割り当てて使用することです。複数のユーザーが同時にページにアクセスしたときに発生する不快感がないことを願っています。

ただし... Image の 1 つのインスタンスだけを作成し、それを Controls コレクションに複数回追加できるように、UserControl を再利用する方法はありますか? 私はこれを素朴に試しましたが、うまくいきませんでした。画像は、最初に追加された最初のコントロールに対して 1 回だけ描画されます (おそらく、INamingConainer のものと関係があります...?)

4

2 に答える 2

2

単なるアイデアですが、パディング イメージ ユーザー コントロールを次のような別のユーザーコントロールに置き換えることはできません。

public DivPadder : HtmlGenericControl
{
    public DivPadder() : base("div")
    {
        this.Style.Add("padding:10px");
    }
}
于 2010-07-22T14:47:40.763 に答える
0

ツリーの内容をバックグラウンド スレッドにロードすることを検討しましたか?

于 2010-07-22T14:29:35.743 に答える