2017-12-22 91 views
0

ページを更新せずにサーバーにajaxリクエストを行う必要があるときは、Genexusは自分のUCで使用できるイベントを発行する必要があります。Genexusのフォームリフレッシュ/リクエストでユーザーコントロールで使用するイベントは何ですか?

このイベントは正確には何か、もし存在しなければ、JSのすべてのイベントをGenexusのユーザーコントロールでどのように知ることができますか?

I .: UserActionをクリックして別のテーブルの値を検索してから、それを取得すると、どのようにキャプチャできますか?

別のシナリオ:

私は、サーバーへの要求を行うと、それに関する情報を取得しています。
$(gx-warning-message).text(); 私の要求がまだロードされている場合、私の関数を実行すると、イベントがまだ情報をロードしているので、何も返しません。

これを回避するには、ループを作成していますが、問題を解決するうまい方法ではありません。

$(".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); 
}); 

どうすればいいですか?

おかげ

答えて

2

あなたはGeneXusのユーザーイベントが発生するたびに通知を受けたい場合は、あなたはgx.onaftereventイベントをサブスクライブすることができます。たとえば:

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

scopeあなたは三番目のパラメータ機能のthisとして設定するオブジェクトです。

+0

もう一度やりますか?私は本当に範囲のものを持っていない、あなたは例を与えることができる? –

+0

'scope'は、第3のパラメータ関数の' this'オブジェクトとして設定されるオブジェクトです。ユーザコントロールをプログラミングするときは、例えば 'show'関数のようにユーザコントロールオブジェクトに設定したいと思うでしょう:gx.fx.obs.addObserver( 'gx.onafterevent'、this、function(){.. ..}); – ncardeli

+0

爆弾の仲間、thx –

関連する問題