25

UpdatePanel プロセスが終了したときにスクリプトを実行する方法はありますか。

レコードの「挿入」、「コピー」、および「編集」を許可するページがあります。これはすべて、ページ ナビゲーションを防ぐために UpdatePanel で行われます。ページの別の場所に、「レコードの入力に成功しました」などの「フラッシュ」メッセージを印刷したいと考えています。UpdatePanel の近くにないため、メッセージに jQuery 効果を使用して、4 秒後にフェードアウトさせたいと考えています。UpdatePanel でスクリプトを返送したり、UpdatePanel の更新後にスクリプトを実行したりするにはどうすればよいですか? asp:literal にスクリプトを記述する必要がありますか? 考え?

4

6 に答える 6

31

はい:

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

その後:

function endRequestHandler(sender, args)
{
  // Do stuff
}

ドキュメンテーションここここ。これは、ページ上のすべての AJAX リクエストに対して発生することに注意してください。

于 2009-01-06T20:59:33.313 に答える
27

これでうまくいくはずです:

       <script type="text/javascript">
            var prm = Sys.WebForms.PageRequestManager.getInstance();
            prm.add_beginRequest(BeginRequestHandler);
            prm.add_endRequest(EndRequestHandler);

            function BeginRequestHandler(sender, args) 
            {
                 //Jquery Call
            }

            function EndRequestHandler(sender, args) 
            {
                 //Jquery Call

            }
        </script> 
于 2009-01-06T20:59:37.900 に答える
4

ScriptManager の静的メソッド RegisterClientScriptBlock を使用してそれを行う方法については、こちらの記事を参照してください。それを試してみて、魅力のように機能します。

http://csharperimage.jeremylikness.com/2009/06/inject-dynamic-javascript-into-aspnet.html

于 2009-11-12T20:49:00.767 に答える
3
var requestManager = Sys.WebForms.PageRequestManager.getInstance();
requestManager.add_beginRequest(function () { alert('here1') });
requestManager.add_endRequest(function () { alert(here2') });

出典:http ://www.howtositecore.com/?p = 36

于 2011-06-23T04:49:11.733 に答える
3

Sys.WebForms.PageRequestManager.getInstance() メソッドも私にとってはうまく機能します。

私は複数の Updatepanel を含む多くのページを扱っていますが、Updatepanel を更新したくない場合でも、これが自動的に起動することを知りました。したがって、イベントで発生する関数内で、次のようなものがあることを確認してください。

function BeginRequestHandler(sender, args) {
if (args.get_postBackElement().id == "ID of the Updatepanel") {
// do stuff here
于 2015-06-06T03:49:35.667 に答える
2

ブルーノ、

まず、あなたの直接の質問に答えます。更新パネルによって呼び出されるコールバックでは、RegisterStartupScript 呼び出しを使用して JS メソッドを呼び出すことができるはずです。次に、JS メソッドでメッセージを表示し、do a を使用できます。

setTimeout('$('#myMessage').fadeOut("slow")', 4000);

4秒後に消えるようにします。

さらに一歩先へ進むために、あなたはすでに JavaScript を実装しているので、UpdatePanels に関するこの記事をチェックすることをお勧めします。可能であれば、挿入、コピー、および編集を行うために Ajax 呼び出しを送信するようにします。これにより、ユーザー フィードバックがさらに簡素化され、過剰な情報が送信されるのを防ぐことができます。

于 2009-01-06T21:00:28.523 に答える