3

私はjqueryアコーディオンを起動しています:

$(document).ready(function(){
   $('#accordion').accordion();
});

問題は、これが .asp.NET アプリケーションであり、ページがポストバックを起動すると、アコーディオンが破棄されることです。ポストバック時にアコーディオンを再開するにはどうすればよいですか?

申し訳ありませんが、私は asp.NET の専門家ではありません。また、パスワードで保護されたアプリケーションであるため、サンプルへのリンクを提供できません。

ありがとう。

4

2 に答える 2

6

次のように UpdatePanel 関数を使用してポストバックした後、アコーディオンを再初期化する必要があります。

<script type="text/javascript"> 
$(document).ready(function(){
    var prm = Sys.WebForms.PageRequestManager.getInstance();    
        prm.add_initializeRequest(InitializeRequest);
        prm.add_endRequest(EndRequest);
   // on page ready first init of your accordion
   $('#accordion').accordion();
});


function InitializeRequest(sender, args) {      
}

function EndRequest(sender, args) {
     // after the UpdatePanel finish the render from ajax call
     //  and the DOM is ready, re-initilize the accordion
     $('#accordion').accordion();
}
</script>

相対:
Gridview Jquery DatePicker の Asp.Net UpdatePanel
ASP.Net: 更新パネルの読み込みが完了したときに JavaScript を実行する必要が
ある ASP.NET ポストバックでクライアント側のスクリプトを実行するにはどうすればよいですか? (UpdatePanel から)

于 2012-12-13T09:41:25.010 に答える
2
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(InitAccordion);
function InitAccordion(){       
   $('#accordion').accordion();}

これは、ポストバックと asyncpostback で機能します。同期または非同期ポストバックの結果として、ページ上のすべてのコンテンツが更新された後に発生します。 http://msdn.microsoft.com/en-us/library/bb397523(v=vs.100).aspx

于 2012-12-13T09:29:17.250 に答える