2012-09-06 6 views
0

콤보 박스가 준비되었을 때만 함수를 실행할 수 있습니까?Listener OnReady를 extjs에 추가 ComboBox

Ext.OnReady의 끝에서 때때로 콤보가 준비되지 않았고 아약스 호출로 값을 채우기 위해 함수를 호출하는 것이 많은 문제를 유발하기 때문에 문제가 있습니다.

var combo = new Ext.form.field.ComboBox({ 
    /* config settings, blah blah blah */ 
    listeners: { 
     afterrender: { 
      single: true, 
      fn: function(combobox){ 
       Ext.Ajax.request({ 
        /* request settings */ 
        success: function(data){ 
         var value; 
         /* process your data response */ 
         combobox.setValue(value); 
        } 
       }); 
      } 
     } 
    } 
}); 

또는 이미 Ajax 요청에서 값이있는 경우, 당신은 단지 설정할 수 있습니다 :이 시도 대신

setTimeout(function(){myDataFiller();},300);
+0

콤보에 대한 afterRender() 수신기로 시도하십시오. – AJJ

+0

시도한 사람 :

listeners: {afterrender: function(t,o){ getInfoProduct();}},
하지만 동일한 동작입니다. : S – GLlompart

+0

당신은 콤보 코드 스 니펫을 게시 할 수 있습니까? – AJJ

답변

0

CPU를 기반으로하는 렌더링 문제였던 것 같습니다.

Intel Core 2 Duo에서 테스트를했는데 오류가 재현 될 수있었습니다. 그 후 나는 i7 cpu를 시험해 보았고 모든 것이 잘되었다.

0

의 이러한 작업을 수행하기위한 적절한 방법을 찾고 있어요

afterrender 함수의 값입니다. 위의 single: true 사용에 유의하십시오. 즉, 함수가 한 번만 실행되므로 무언가로 인해 콤보 상자가 다시 렌더링되는 경우 실수로 값을 다시 설정하지 않게됩니다.

+0

당신이 제안하는 첫 번째 방법은 내가 재이 주석 (Jai comment) 이후에 한 일이었고 운동하지 못했습니다. – GLlompart