ASP.NETで達成しようとしていることを達成するさまざまな方法があります。 User ControlsまたはServer Controlsを使用できます。ユーザーコントロールである主な違いはASP.NETページのように動的にコンパイルされ、サーバーコントロールはあらかじめコンパイルされています。
サーバーコントロールは、再利用が非常に重要な自己完結型コントロールを作成するのに非常に便利です。コントロールを必要とするプロジェクトに単一の.dllを展開し、OOPコードの他の共有ライブラリと同じようにアクセスできます。
ページにサーバーコントロールを追加するのは非常に簡単です。 BINフォルダに.dllを置き、そのページへの参照を追加するだけです。参照は、このようになります
<radm:radmenu id="RadMenu5" runat="server"></radm:radmenu>
ユーザーコントロールのコードをグループ化するための素晴らしいですし、アプリケーションに合わせてコントロール:あなたのページの上のコントロールへのアクセス
は
<%@ Register TagPrefix="radM" Namespace="Telerik.WebControls" Assembly="RadMenu.Net2" %>
次のように簡単になります。さまざまなプロジェクトでコードを再利用する必要はなく、そのアプリケーションでのみ便利な方法でコントロールを組み合わせたり操作したりしています。以下に示すように
ユーザーコントロールを登録および使用は、サーバーコントロールのものと同様である。
<%@ Register TagPrefix="Control1" TagName="Menu" Src="controls/Menu.ascx" %>
コードでそれをアクセスも同様に行うことができる。
<Control1:Menu ID="ucMenu" runat="Server" />
プレースホルダコントロールをページに最初に追加すると、プログラム的にページにコントロールを追加することもできます。このコードは、コードビハインドファイルになり
:以下の方法と同様にあなたの.aspxページは、その後、あなただけは、動的にコントロールを追加したい場所でPlaceHolderControlが必要になります
Dim ucMenu As UserControl = LoadControl("/Controls/Header.ascx")
MenuPlaceHolder.Controls.Add(ucMenu)
。以下に示すように:
<asp:PlaceHolder ID="MenuPlaceHolder" runat="server" />
徹底的な説明をありがとうございます!私のケースでは、2番目のソリューションとユーザーコントロールを使用する必要があると思います。ありがとうございました。 – Marius
実際、私はそれに固執してしまった。私は、例えばある方法を持つ統一された構造を持つ必要があります。"processPluginData()"を呼び出し、ロードされたコントロールごとにそのメソッドを呼び出します。これを行うには、いくつかの基底クラスから継承する必要がありますが、私はfamilliarではないので、私は非常に混乱しています。ネットと私は私の基底クラスを入れ、後でそれを継承する方法を知らない。もし私がメインのaspxページに入れたら、私はそれをコントロールに見えるようにする方法を知らない。 – Marius
心配しないで、私はそれを解決したように見える;] – Marius