Ajaxアコーディオンのクリックイベントを取得するにはどうすればよいですか? asp.net

StackOverflow https://stackoverflow.com/questions/1809587

  •  05-07-2019
  •  | 
  •  

質問

ajaxアコーディオンがあり、各ペインにはupdatepanel(動的に作成された)が含まれています。ペインのヘッダーがクリックされたときにupdatepanelsを更新したいのですが、クリックイベントはありません。

ヘッダーにボタンをポップし、scriptmanagerを使用して非同期トリガーとして登録できますが、ボタンは必要ありません。ヘッダー全体をトリガーにしたいです。

サーバー側のクリックイベントがないため、divまたはラベルをトリガーとして設定する方法がわかりません。他にできる方法はありますか?

役に立ちましたか?

解決

jQueryを使用します。

構文は次のように簡単です:

$('#myHeading').click(function(){
    // Your code here
});

ASP.NETでは、ワイルドカードIDの一致を使用しなければならない場合がありました。ASP.NETは、要素に対して非常に長い半ランダムなクライアントサイドIDを作成するためです。次のようなことをします:

$('[id*="myHeading"]').click(function(){
    // Your code here
});

本質的には、DOM上の任意のものを選択し、jQueryを使用してイベントハンドラーをアタッチできます。セレクタを使用して創造性を発揮する必要がある場合があります。

重要:updatepanelsを使用していて、クリックを監視する見出しがそのパネル内にある場合、パネルがajaxを介してロード/再ロードされた後に、選択している要素にこれらのイベントハンドラーをREBINDする必要があります。これは、次のコードを使用して実現できます。

var prm = Sys.WebForms.PageRequestManager.getInstance();

prm.add_pageLoaded(panelLoaded);

function panelLoaded(sender, args){

    $('[id*="myHeading"]').click(function(){
        // Do something after there is a click
    });

}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top