ASP.NETページにユーザーコントロールを登録すると、コントロールがページに読み込まれるかどうか。
<%@ Register Src=".." TagName="tag" TagPrefix="pre" %>
使用しているページで呼び出さなくても?
<pre:tag id='control123' />
コントロールを呼び出さなくてもコードの一部が実行されるため、パフォーマンスプロフィルを実行したときにわかりました。
13181 次
2 に答える
7
この場合、ユーザー コントロールはサーバー側のページ オブジェクトに読み込まれます。つまり、ASP.NET アプリのライフサイクル全体で処理されますが、コントロール インスタンスを作成しないため、出力 HTML はレンダリングされません。「タイプ」を使用していますが、「インスタンス」は使用していません。
質問への回答: はい、ロードされますが、レンダリング、データバインドなどは行われません...
2012 年 2 月 7 日編集
Register ディレクティブを取り除きたい場合は、いつでも web.config を使用できます。このScottgu の投稿の指示に従ってください。
于 2012-02-02T11:24:47.467 に答える
1
Register ディレクティブは、プレフィックスとコントロールの間の関連付けを作成するためだけに存在します。コントロールを宣言的にロードする場合にのみ重要です。開発を容易にするためだけに存在します。
コントロールのインスタンスをどこかで宣言しない限り、Page_Load またはプライベート メソッドを呼び出す方法はありません。
さらに、コードのどこにも使用していない場合は、Register ディレクティブを使用しないでください。IMO Register ディレクティブがこの問題を引き起こしているとは思いません。
于 2012-02-02T10:50:05.550 に答える