WebPartManager.WebPartsDisconnecting イベント
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
以前に接続された WebPart またはサーバー コントロール間の接続を終了するプロセス中に発生します。
public:
event System::Web::UI::WebControls::WebParts::WebPartConnectionsCancelEventHandler ^ WebPartsDisconnecting;
public event System.Web.UI.WebControls.WebParts.WebPartConnectionsCancelEventHandler WebPartsDisconnecting;
member this.WebPartsDisconnecting : System.Web.UI.WebControls.WebParts.WebPartConnectionsCancelEventHandler
Public Custom Event WebPartsDisconnecting As WebPartConnectionsCancelEventHandler
イベントの種類
注釈
WebPartsDisconnecting イベントは、OnWebPartsDisconnecting メソッドによって発生し、ユーザーが切断動詞をクリックしたか、DisconnectWebParts メソッドが呼び出されたという事実を通知します。 このイベントは、接続が完了する前に接続を終了するプロセスを取り消す機会を提供します。 接続が正常に終了すると、このイベントの後に WebPartsDisconnected イベントが続きます。
ページ開発者は、OnWebPartsDisconnecting要素に<asp:webpartmanager>属性を追加し、カスタム メソッド名を属性に割り当てることで、イベントのカスタム ハンドラーを追加できます。
通常、接続を終了するユーザーのアクションの直接の結果として WebPartsDisconnecting イベントが発生すると、イベントを取り消すことができます。 ただし、イベントを取り消すことができないシナリオがいくつかあります。 最初のシナリオは、 WebPartZone コントロールが削除された場合、そのコントロールに含まれる WebPart コントロールをすべて閉じる必要があり、それ以外の場合は孤立します。 この場合、 WebPartManager コントロールはユーザーではなく、 WebPart コントロールを閉じます。また、すべてのコントロールをクリーンアップして閉じるプロセスを完了できるように、中断することなく接続されているコントロールの接続を終了できる必要があります。 そのため、このシナリオでは、 WebPartsDisconnecting メソッドを意図的に取り消すことはできません。 取り消すことができる関連イベントについては、 WebPartClosing イベントを参照してください。
WebPartsDisconnecting イベントを取り消すことができない 2 つ目のシナリオは、ActivateConnections メソッドが呼び出されたとき (たとえば、ページに対する各要求の間に呼び出されます)、ページ上の既存の接続に何らかの種類の競合がある場合です。 たとえば、ユーザーがコントロール x をコントロール y に接続しても、共有ユーザーはコントロール x を接続して z を制御しますが、コントロール x は複数の接続を形成できません。 この場合、接続に対する個々のユーザーの設定が優先され、 WebPartManager コントロールは、 DisconnectWebPart メソッドを呼び出し、特定のユーザーの x と z の間の接続を終了することで競合を解決します。 この切断は競合を解決するために不可欠であるため、設計上、このシナリオでは WebPartsDisconnecting イベントを取り消すことはできません。
WebPartsDisconnecting メソッドを取り消すことができない 3 番目のシナリオは、現在接続されているWebPartまたはサーバー コントロールが削除されるか閉じられた場合です。 コントロールは間違いなくページから削除されるため、接続を削除することは論理的に必要です。 したがって、 WebPartManager コントロールが DisconnectWebPart メソッドを呼び出すと、 WebPartsDisconnecting イベントが発生します。設計上、イベントを取り消す可能性はありません。