2017-12-22 2 views
0

페이지를 새로 고치지 않고 서버에 아약스 요청을해야 할 때마다 Genexus에서 내 UC에서 사용할 수있는 이벤트를 방출해야합니다.Genexus에서 양식 새로 고침/요청시 사용자 컨트롤에서 어떤 이벤트를 사용해야합니까?

이 이벤트는 정확히 무엇이며,없는 경우 JS의 모든 이벤트를 Genexus User Control에서 사용하는 방법을 어떻게 알 수 있습니까?

나는 다른 테이블의 값을 검색 한 다음 나를 검색 할 수있는 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'는 세번째 파라미터 함수의'this' 객체로 설정 될 객체입니다. 사용자 정의 컨트롤을 프로그래밍 할 때, 예를 들어'show' 함수와 같이 User Control 객체로 설정하고자 할 것입니다 : gx.fx.obs.addObserver ('gx.onafterevent', this, function() {.. ..}); – ncardeli

+0

다 폭탄 친구, thx –

관련 문제