2011-02-08 11 views
0

再帰を使用してメニューを作成するサーバーコントロールを作成しました。基本的には、内部にアンカーを含むネストされたリストを出力します。複数のWebResourcesを再帰的なサーバーコントロールを使用してhtmlに出力

しかし、コントロールが子メニューをレンダリングするために自身をと呼んでいるので、これは完全に機能しますが、複数の同じWebResource.axd javascriptファイル参照もレンダリングされます。

これをやり遂げるのを止める方法はありますか?私はちょうど私のタグの1つの参照が欲しい。

答えて

0

私は、フォームのプライベートコンストラクタをすることによって自分自身の問題を解決することになった:

private CustomControl(int level) 
{ 
    this._Level = level + 1; 
} 

パブリックコンストラクタはのように見えた:のOnInitでクライアントスクリプトを出力する際、

その後
public CustomControl() : base() 
{ 
    _Level = 1; 
} 

メソッドの場合、_Level == 1かどうかをチェックし、_Level == 1の場合のみクライアントスクリプトを出力します。

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e); 

    if(_Level == 1) 
    { 
    // Add client scripts to this.Page.Header.Controls 
    } 
} 

これが最善の方法であるかどうかはわかりませんが、それは私のために働きました。

関連する問題