1. ホーム
  2. asp.net

[解決済み] Ajax更新後のjQueryのイベント再バインド (updatepanel)

2023-08-19 03:45:22

質問

私のページにはいくつかのinputとoption要素があり、それぞれ(まあほとんど)、それらが変更されるとページ上のいくつかのテキストを更新するためにイベントが添付されています。私は本当に本当にクールなjQueryを使用しています:)。

私はまた、マイクロソフトの Ajax フレームワークを使用し、UpdatePanel を利用しています。そうする理由は、サーバー側のロジックに基づいてページ上に特定の要素を作成するためです。UpdatePanel を使用する理由についてはあまり説明したくありません。 jQuery だけに書き換えられるとしても、私はUpdatePanelを使いたいのです。

おそらくご想像のとおり、UpdatePanel にポストバックがあると、jQuery イベントは動作しなくなります。なぜなら、"postback" は実際には新しいポストバックではないので、イベントをバインドする document.ready の私のコードは再び起動されないからです。また、jQuery ヘルプ ライブラリでこのことについて読むことによって、私の疑いを確認しました。

いずれにせよ、UpdatePanel が DOM . 私はできれば、ページにさらに .js ファイル (jQuery プラグイン) を追加する必要がなく、UpdatePanel の 'afterupdating' をキャッチして、私のメソッドを呼び出すだけですべてのフォーム要素を再バインドできるような、シンプルなソリューションが必要です。

どのように解決するのですか?

ASP.NET AJAXを使用しているのですから、ASP.NET AJAXにアクセスするために pageLoad イベント ハンドラを使用できます。このハンドラは、ページが UpdatePanel から完全または部分的に投稿されるたびに呼び出されます。この関数は、ページ内に置くだけでよく、フックアップする必要はありません。

function pageLoad(sender, args)
{
   if (args.get_isPartialLoad())
   {
       //Specific code for partial postbacks can go in here.
   }
}