AJAX呼び出しが成功したときに呼び出される必要がある単純なJS関数がありますが、フレームワーク(DNN5)がすべてを処理するため、AJAX呼び出しを制御できません。
AJAXの成功時に関数を呼び出すにはどうすればよいですか?
DNNに慣れていない場合は、DNN5とjQueryを使用します。ページ上のすべてのコントロールがasp:UpdatePanelでラップされていると仮定してください。
ありがとうございました。
回答:
回答№1は1私は「DNN5に精通していませんが、UpdatePanelsに精通しています。ASP.NETAJAXで非同期ポストバックのクライアントイベントにフックできますか。つまり、PageRequestManager endRequestイベントにイベントハンドラーを追加できます。
一例として、
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(EndRequest);
// runs when async postback completes.
function EndRequest(sender, args)
{
if (sender._postBackSettings.sourceElement.id) // the id of the element that raised the postback that is completing
{
//Do what you need to do here
}
}
編集:
それについて考えると、私は「これがあなたのために働くかどうかわからない。それはDNN5がASP.NET内でAJAX呼び出しを実行する方法に依存するだろう」
回答№2の場合は0
@Russ:あなたの答えを見ただけで、私はそれをテストし、うまくいけばそれを受け入れます。
この質問を投稿した直後に、以前のプロジェクトで同様の問題があったことを思い出したので、戻ってそこからコードを取得しました:
<script type="text/javascript">
Sys.Net.WebRequestManager.add_completedRequest(onComplete);
function onComplete(sender, args) { //call JS here
}
function pageUnload() {
Sys.Net.WebRequestManager.remove_completedRequest(onComplete);
}
</script>