UpdatePanelのポストバックの開始と終了のイベントを設定する
ASP.NET
のUpdatePanel
の非同期ポストバックの開始または終了のタイミングで何かしらの処理を行いたい場合があります。
JavaScript
で非同期ポストバックの開始と終了のイベントを設定できます。
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(function (sender, args) {
console.log('非同期ポストバック開始');
});
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) {
console.log('非同期ポストバック終了');
});
非同期ポストバックのトリガーとなったコントロールを取得
非同期ポストバックの開始と終了のイベント処理の中で、非同期ポストバックのトリガーとなったコントロールを知りたい場合があります。
(例えばButton1
がクリックされた時だけ非同期ポストバック終了のタイミングで処理を行いたい場合など)
以下のように、add_initializeRequest
のタイミングでトリガーとなったコントロールを保持しておき、add_endRequest
で保持したコントロールを取得して処理を実装できます。
var postbackElement; // トリガーとなったコントロールを保持しておく変数
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(function (sender, args) {
postbackElement = args.get_postBackElement(); // トリガーとなったコントロールを保持
});
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) {
if (postbackElement.id === 'Button1') {
console.log('Button1の非同期処理が完了しました。');
}
});