ASP.NETでユーザーコントロールを動的に生成する際は、普通のwIndowsFormsApplicationのようにはいきません。
ユーザーコントロールの使用を宣言する
まずはユーザーコントロールを使用することを上の方に宣言します。場所は<% Page …のすぐ下あたり
1 |
<%@ Register TagPrefix="UC" TagName="CustomUserControl" Src="usercontrol.ascx" %> |
プロパティは合計3つ
- TagPrefix …タグの接頭辞、何でもいいけど短い方がいいです。
- TagName …タグの名前
- Src …ユーザーコントロールのファイルパス(ascx)を指定します。(できれば絶対パスで)
これでユーザーコントロールを使用する準備ができました。
コード
実際に動的生成するコードです。
1 |
var usercontrol = Page.LoadControl("usercontrol.ascx"); |
newでコントロールを初期化することもできるのですが、初期化する段階で結構面倒なことをしているらしいので、pAge.LoadControlwをつかって初期化してやります。
もし、ユーザーコントロールのプロパティとか変更したいなら、そのユーザーコントロールのクラスに変換してあげると変更することができます。
多分、ASP.NETでユーザーコントロールを作成したばっかりのクラスは長ったらしい上にわかりづらいものだと思います。扱いやすいように変更しておくことをお勧めします。
まとめ

Page.LoadControlでコントロールを初期化する