Frage

Gibt es eine Möglichkeit Skript auszuführen, wenn ein Updatevorgang abgeschlossen ist.

Ich habe eine Seite, die „Einfügen“, „Kopieren“ und „Bearbeitung“ einen Datensatz ermöglicht. Dies alles geschieht auf einem Update getan, um eine Seite Navigation zu verhindern. Irgendwo anders auf der Seite würde Ich mag eine „Flash“ Nachricht drucken - „Sie haben erfolgreich einen Datensatz eingegeben“ wie Es ist nicht in der Nähe des Update und ich mag einen jQuery Effekt auf der Nachricht verwenden, so dass es nach 4 Sekunden ausgeblendet. Wie kann ich Skript wieder mit dem Update oder haben sie ausgeführt werden, nachdem ein Update aktualisieren senden? Soll ich schreiben Skript zu einem asp: Literal? Gedanken?

War es hilfreich?

Lösung

Ja:

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

Und dann:

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

Dokumentation hier und hier . Beachten Sie, dass dies für jeden AJAX-Request auf der Seite ausgelöst wird.

Andere Tipps

Das sollte es tun:

       <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> 

Hier ist ein Artikel, wie es zu tun Script statische Methode Registerclient verwenden. Versucht es und wirkt wie ein Zauber.

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

var requestManager = Sys.WebForms.PageRequestManager.getInstance();
requestManager.add_beginRequest(function () { alert('here1') });
requestManager.add_endRequest(function () { alert(here2') });

Quelle: http://www.howtositecore.com/?p=36

Die Sys.WebForms.PageRequestManager.getInstance () Methode funktioniert bei mir auch sehr gut.

ich mit vielen Seiten arbeiten, die mehrere Update enthalten, und ich habe gelernt, dass dies automatisch auch ausgelöst wird, wenn die Updatepanel Sie es nicht für Auffrischungen wollen. Also innerhalb der Funktion, die auf das Ereignis ausgelöst wird sicherstellen, dass Sie so etwas wie:

function BeginRequestHandler(sender, args) {
if (args.get_postBackElement().id == "ID of the Updatepanel") {
// do stuff here

Bruno,

Zuerst Ihre direkte Frage zu beantworten. In Ihren Rückruf, der durch das Update-Panel aufgerufen wird, sollten Sie in der Lage sein, einen Registerstartup Aufruf zu verwenden, um eine JS Methode aufzurufen. Dann in Ihrer JS Methode, würden Sie die Meldung und dann können Sie ein tun verwenden:

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

, um es abklingen nach 4 Sekunden.

einen Schritt weiter zu gehen, da Sie bereits JavaScript Implementierung, würde ich laden Sie ein href zu überprüfen <= "http://encosia.com/2007/07/11/why-aspnet-ajax-updatepanels -sind ungefährliche /“rel = "nofollow noreferrer"> dieser Artikel über Update . Wenn möglich, würde ich versuchen, Ajax zu tun, um Ihre Einfügen, Kopieren senden Anrufe und bearbeiten, und dies würde weiter die Nutzer-Feedback vereinfachen und überschüssige Informationen über den Draht verhindern würde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top