1

ASP.net の Panel を拡張するカスタム サーバー コントロール "CollapsablePanel" を作成しようとしています。基本的に、私がやろうとしているのは、現在のパネルを取得し、タイトル バーと必要な JavaScript を追加して、折りたたみ/展開機能を追加することです。それ以外は、.aspx 構文と一般的なパネル機能は同じままにしておきたいです。この状況に何らかのベスト プラクティスはありますか、それとも最終的には、パネルの HTML 出力がどのようにレンダリングされるかを完全に上書きする必要がありますか?

ありがとう、

マイク

4

3 に答える 3

3

新しい Panel クラスを派生させてから、Render 機能をオーバーライドしたいだけのように思えます。

public class MyPanel : Panel
{    
    protected override void Render(HtmlTextWriter writer)    
    {
        writer.Write("<div id=\"" + base.ClientID + "\">");
        writer.Write("..."); // Whatever else you want to render.
        writer.Write("</div>");
    }
}
于 2009-10-14T20:29:04.990 に答える
2

Asp.Net AJAX コントロール ツールキットには、ニーズに合いそうなクラスが含まれていますCollapsiblePanel

それでもうまくいかない場合は、コントロールに少なくともa 、 an 、および aを含める必要があるように思われるためCompositeControl、直接ではなくから継承することを検討してください。PanelLabelImagePanel

から継承する利点の 1 つCompositeControlは、レンダリング ロジックの一部を自分で実装する必要がある場合でも、実際の HTML レンダリングのほとんどを子コントロールに委任できることです。いくつかの便利なリンク:

于 2009-10-14T20:26:47.540 に答える
0

基本的な概念を超えて拡張する方法についてはあまり詳しく説明しませんが、基本クラスとして Panel から派生した独自のものを作成するだけです。

class MyPanel : Panel
{
    public MyPanel()
    {
    }

    etc...
}
于 2009-10-14T20:05:16.490 に答える