私はMasterPageを持っており、ユーザーコントロールはdiv内にあります。
UserControlとそれを含むdivにvisible=falseを設定できますが、これは正常に機能します。ただし、UserControlのPage_Loadは常にヒットします。
これは仕様によるものですか、それともUserControlのPage_Loadメソッドに入るページの実行を停止する方法がありません。
私はMasterPageを持っており、ユーザーコントロールはdiv内にあります。
UserControlとそれを含むdivにvisible=falseを設定できますが、これは正常に機能します。ただし、UserControlのPage_Loadは常にヒットします。
これは仕様によるものですか、それともUserControlのPage_Loadメソッドに入るページの実行を停止する方法がありません。
UserControlをページに追加すると、ページが実行されるたびにインスタンス化され、Page.Controlsコレクションに追加されます。Visibleをfalseに設定すると、基本的にはコントロールのhtmlのレンダリングが短絡され、ページに表示されなくなります。
コントロールが「Page_Load」で実行する高価な操作がある場合は、その操作を回避するためにVisibleプロパティをキーオフします。
コントロールが作成されていない場合、どのようにしてそれを非表示にすることができますか?
ユーザー コントロールの PageLoad イベント メソッドに入る実行を停止することはできません。
Visible プロパティを使用して、コード内で時間のかかる操作を実行するかどうかを判断するという @joshperry の提案は適切です。
もう 1 つのオプションは、OnPreRender イベント メソッドで時間のかかるオプションを完了することです。