2

背景: JSLink を使用して SharePoint リスト Web パーツを変更しています。また、jQuery と jQuery-UI を追加して、リスト項目を jQuery アコーディオンとして表示します。60 秒ごとにコンテンツを更新するために、Web パーツに ajax 自動更新を実装する必要があることを除けば、うまく機能します。

問題: Web パーツが更新されると、jquery コードが元に戻り、項目がアコーディオン モードで表示されなくなります。ブラウザ コンソールを開いて jquery コードを手動で入力する$(".selector").accordion();と、問題なく動作します。このことから、Web パーツの自動更新が完了するたびに jquery コード呼び出す方法を見つける必要があると思います。

質問: では、後で jquery アコーディオンを再度呼び出すことができるように、Web パーツで自動更新がいつトリガーされるかを確認するための JavaScript イベントまたは方法はありますか? 私が見逃している可能性のあるものは他にありますか?

御時間ありがとうございます!

4

2 に答える 2

1

答えは、次のコードを使用することでした。

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(MyFunction); 

function MyFunction() { 
    //do something here; 
}

@Thriggleへのクレジット

参考文献: https://msdn.microsoft.com/en-us/library/bb311028.aspx https://www.daniweb.com/programming/web-development/threads/247263/ajax-postback-after-endrequest

于 2015-10-08T19:24:14.623 に答える
0

_onFormSubmitオブジェクトの現在のインスタンスのメソッドをオーバーライドすることで、独自のコードまたは関数呼び出しをコールバック チェーンに挿入できると思いSys.WebForms.PageRequestManagerます。

Sys.WebForms.PageRequestManager.getInstance()._onFormSubmit = function(i){

    Sys.WebForms.PageRequestManager.prototype._onFormSubmit.call(this,i);

    alert("Refreshing the data..."); // -- your code or function call here

};

上記のコードを F12 コンソールで、25 秒ごとに更新されるリスト ビューのあるページで実行すると、25 秒ごとに「データを更新しています...」というポップアップが表示されるようになりましたが、まだ表示されていません。それよりも複雑なものでテストしました。

于 2015-10-08T15:55:33.170 に答える