1

コード ビハインドでユーザー コントロールを追加するには、2 つの方法があります。

  1. ユーザー コントロール コンストラクターを親ページに公開します。
  2. Page.LoadControl メソッドを使用します。

したがって、基本的には、同じタスクを実行する 2 つの異なる方法があります。特定の状況下で 1 つの方法が機能し、他の方法は機能しませんか?それらの機能の違いは何ですか? そして、いつどちらを優先するのですか?

4

2 に答える 2

2

ここで答えを見つけました

Web カスタム コントロールと Web ユーザー コントロールの違いを理解する必要があります。

Web コントロール (DataGrid、ボタンなど) のような Web カスタム コントロールはクラスです。それらを作成するには、コンストラクターを呼び出すだけです: Dim b as Button = new Button()

Web ユーザー コントロールは、ASCX ページ (HTML を含む) とクラスによって定義されます。クラスはコントロールのコード ビハインドにすぎないため、そのコンストラクターを呼び出してもコントロールは作成されません。ここで LoadControl メソッドが必要です。ASCX ページの名前を渡すと、このページと CodeBehind クラスの両方が読み込まれます。

于 2012-12-21T12:26:36.300 に答える
0

LoadControlタイプが使用できない場合に、ユーザー コントロールをページに動的に追加するために主に使用されます。ほとんどのユーザー コントロールは、更新可能な Web サイト アプリケーションでは使用できません。また、型が使用できないため、動的に作成されたユーザー コントロールのプロパティを設定するのが難しいことにも注意してください。

MyControl c = new MyUserControl()が推奨されますが、次のようなことを止めることはありません:

MyControl c = (MyControl)Page.LoadControl('path to ascx');

しかし、私はその必要性を見ていません。

于 2012-06-29T14:48:18.683 に答える