2014-05-12 4 views
1

CF9 (ext js 3.1)에는 선택 상자의 값에 따라 ajax 호출로 채워진 바운드 그리드가 있습니다. select의 onChange 이벤트는 js 함수를 트리거합니다. 이 함수에서는 다른 코드를 실행하기 위해 그리드 새로 고침 이벤트에 대한 트리거를 설정하려고합니다. 나는 afterreder, 재구성,로드, 아무것도 작동 시도 : 오류가 발생하지 않지만 함수가 트리거되지 않습니다. grid.addEvents ('click')와 같이 그리드가 새로 고쳐진 후 이벤트가 변경되면 이벤트가 올바르게 작동합니다. 내가 뭘 놓치고 있니?ajax 그리드에서 데이터 새로 고침을 트리거로 사용하는 방법은 무엇입니까?

function myFunc(val) { 
// ... some other code ... 

    ColdFusion.Grid.refresh('myGrid',true); 
    var grid = ColdFusion.Grid.getGridObject('myGrid'); 

    grid.addEvents('reconfigure'); 

    grid.on('reconfigure',function(){ 
    alert("Grid changed!"); 
    });   
} 

답변

0

비동기 실행을 시작 ('에는 myGrid', true)를 ColdFusion.Grid.refresh 것 같은데, 함수의 나머지는가는 유지하고 그것은 grid.refresh 완료하기 전에 실행할 수 있습니다.

트리거 된 코드를 다른 함수로 옮기고 지연을 추가했습니다. 아약스 호출이 너무 지연되어 1 초 이상 지연 될 수 있습니다. 누구든지 더 좋은 아이디어가 있다면, 그것에 대해 알게되어서 고맙습니다.

function myFunc(val) { 
    // ... some other code ... 

    ColdFusion.Grid.refresh('myGrid',true); 

    myVar = setInterval(myOtherFunc,1000); 
} 

function myOtherFunc() { 
    var grid = ColdFusion.Grid.getGridObject('myGrid'); 
    // add whatever code is needed 
}