4

別のページに移動したときに実行されるイベントは何ですか。アンロードですか?

Protected Sub Edit_Unload(sender As Object, e As EventArgs) Handles Me.Unload

End Sub
4

4 に答える 4

3

Unloadリクエストの最後に発生します* . 他のページへの移動とは関係ありません。ページは、単一のリクエストの過程で「ロード」および「アンロード」されます。それ以外のように見える唯一の理由は、Web フォームが舞台裏で行う魔法です。

これが新しい読み込みかポストバックかを確認したい場合、Page クラスには、IsPostBackページ内の何かが同じページへのポストバックをトリガーするときに true になるプロパティがあります。false の場合、これは新しいリクエストであり、適切に処理する必要があります。

それ以外は、セッションで最後にアクセスしたページを追跡する以外に、(現在のページを更新するのではなく)誰かが別のページに移動したことを特定する方法を認識していません。

* (ページのライフ サイクルの最後のイベントとして定義されていますが、何らかの理由でリクエストが途中で終了した場合は発生しない可能性があります。リダイレクトと転送が代表的な例です。)

于 2013-03-04T16:59:20.690 に答える
2

UnloadASP.NET Page Lifecycleの最後のイベントです。

ドキュメントから:

各コントロールに対して発生し、次にページに対して発生します。コントロールでは、このイベントを使用して、コントロール固有のデータベース接続を閉じるなど、特定のコントロールの最終的なクリーンアップを行います。ページ自体については、このイベントを使用して、開いているファイルやデータベース接続を閉じる、ロギングやその他の要求固有のタスクを終了するなど、最終的なクリーンアップ作業を行います。

ただし、別のページにリダイレクトする場合、このメソッドは呼び出されない場合があります。

于 2013-03-04T16:58:50.380 に答える
1

次のリンクが役立つ場合があります:ページ ライフ サイクルの概要。イベントの実行に依存することはできませんが、これはイベントが実行される順序 (およびタイミング) を示すための優れたガイドです。

于 2013-03-04T16:59:34.483 に答える
0

ページが離れたときにイベントをキャプチャする場合は、javascript を使用してサーバー メソッドを呼び出すことができます。これは機能しますが、サーバー コードでプロセスを停止できるようには見えません。私が始めた最後のスレッドをチェックしてください:

ページがリダイレクトされないようにする

その中で、javascript を使用してページが離れようとしていることを検出し、それが発生する前にサーバー メソッドを呼び出す方法の例を投稿します。

于 2013-03-04T18:48:29.970 に答える