ASP.NET ユーザーコントロールの多数のインスタンスを動的に作成します。どのように作成すればよいでしょうか?また、競合はどこにあるのでしょうか?
-
26-09-2019 - |
質問
これまで ASP.NET でこれが実装されているのを見たことはありませんが、次のような外観と動作をする UI を考えています。
概念的な概要
- TabControl がロードされ、最初のタブにグリッドが含まれます
- 行をダブルクリックすると、レコードの詳細を含む新しいタブが作成されます。
- タブ/レコード詳細のコンテンツはユーザーコントロールによって作成されます
- 多数のタブを作成できるため、ユーザーコントロールのインスタンスも多数作成されます。
ASP.NET が私の (runat="server"
) ID を取得し、jQuery または ASP.NET のサーバー側コードを使用して ID を操作できること...私の懸念は次のとおりです。
- ユーザー コントロールの N 番目のインスタンスごとに一意の ID を生成するように ASP.NET に依頼するにはどうすればよいですか (プレースホルダーにレンダリングされるため)
- 実際にコントロールの追加インスタンスを作成するにはどうすればよいでしょうか?
- 他に何に留意する必要がありますか?
ポストバックを望まないので、ComponentArt の実装をベースにすることを検討しています。 コールバック制御, 、そして ASP.net ユーザーコントロールを使用してこの効果を実現します。これにより、ポストバックが必要なほとんどのことを実行できるようになりますが、ページ上のすべての要素は更新されません...ユーザー コントロールを含むセクションだけです。そうは言っても、私は特定の実装に縛られているわけではありません。
解決
Page.LoadControl メソッドを調べる必要があります。これはうまく機能し、私が覚えている限りでは、ページにプレースホルダーを配置し、そのプレースホルダーにコントロールを読み込むことで、ID を制御します。
このアプローチであまりうまく機能しないことの 1 つは、コントロールが Page オブジェクトが処理する必要があるイベントを発生させる場合です。ただし、コントロールが自己完結型であれば問題はありません。
これは開始に役立つかもしれません:http://www.codeproject.com/KB/aspnet/LoadingUSerControl.aspx
所属していません StackOverflow