2017-12-22 1 views
0

Immer wenn ich eine Ajax-Anfrage an den Server stellen muss, ohne die Seite zu aktualisieren, sollte Genexus ein Ereignis ausgeben, das ich in meinem UC verwenden könnte.Welches Ereignis sollte ich in einem Benutzersteuerelement für eine Formularaktualisierung/Anforderung auf Genexus verwenden?

Was genau wäre dieses Ereignis, und wenn es keine gibt, wie könnte ich wissen, alle Ereignisse in JS in einem Genexus User Control zu verwenden?

Ie .: Wenn ich in eine UserAction klicke, die nach Werten in einer anderen Tabelle suchen und dann dann für mich abrufen kann, wie kann ich das erfassen?

Ein weiteres Szenario:

Ich mache eine Anfrage an den Server und Abrufen von Informationen davon. Ich muss die
$(gx-warning-message).text(); bekommen, aber wenn meine Anfrage noch lädt, wenn ich meine Funktion ausführen, wird es nichts zurückgeben, weil das Ereignis noch Informationen lädt.

Um dies zu vermeiden, mache ich eine Schleife, aber es ist keine elegante Möglichkeit, das Problem zu lösen.

$(".Button").click(function() { 
    var timesRun = 0; 
    var interval = setInterval(function(){ 
     timesRun += 1; 
     if(timesRun === 60){ 
      clearInterval(interval); 
     } 
     if ($(".gx-warning-message").text().length > 0) { 
     toastrgx(); 
     $(".gx-warning-message").text(''); 
     } 
    }, 200); 
}); 

Also, wie kann ich es besser machen?

Dank

Antwort

2

Wenn Sie jedes Mal, wenn ein GeneXus Benutzerereignis benachrichtigt werden möchten, gefeuert wird, können Sie auf gx.onafterevent Ereignis abonnieren. Zum Beispiel:

gx.fx.obs.addObserver('gx.onafterevent', scope, function() { 
    // Here goes the code you want to execute 
    // every time a GeneXus event is fired 
}); 

scope ist das Objekt, das Sie als this der dritten Parameterfunktion einstellen wollen.

+0

Entschuldigung, komm wieder? Ich habe das Zeug nicht wirklich, könntest du ein Beispiel geben? –

+0

'scope' ist ein Objekt, das als das 'this'-Objekt der dritten Parameterfunktion gesetzt wird. Wenn Sie ein Benutzersteuerelement programmieren, möchten Sie es wahrscheinlich auf das Benutzersteuerungsobjekt einstellen, zum Beispiel innerhalb der 'show'-Funktion: gx.fx.obs.addObserver ('gx.onafterevent', this, function() {.. ..}); – ncardeli

+0

da Bombe Mate, thx –

Verwandte Themen