2013-02-25 3 views
0

사용자가 값을 선택하고 해당 값이 확인란 데이터 저장소로 전달되고 데이터베이스 (Oracle)에서 동적으로 채워지는 콤보 상자가 있습니다. 나는 아래 코드를 시도했다. 선택한 매개 변수가 확인란에 전달되고 콘솔에 데이터가 채워지는 것을 볼 수 있습니다. 폼의 확인란을 렌더링 할 수 없습니다. 내가 얻는 오류 : typeError : this.items [0] 정의되지 않았습니다.extjs의 체크 박스를 사용하여 동적 데이터 표시

testArray = new Array(); 
    var testStore = new Ext.data.JsonStore({ 
     proxy:new Ext.data.HttpProxy({ 
     method:'GET', 
     prettyUrls:false, 
     url:'kiu.htm', 
     listeners:{ 
      'loadexception':{ 
      fn:test.form.data.loadException 
      } 
     } 
     }), 
     fields:["id", "display"], 
     reader:new Ext.data.JsonReader({ 
     id:'id', 
     root:'results', 
     totalProperty:'totalCount', 
     fields:new Ext.data.Record.create([ 
      {name:'id',type:'int'}, 
      {name:'display',type:'string'} 
     ]) 
     }), 
     listeners:{  
     load: function(t, records, options, success) { 
      for(var i=0; i<records.length; i++) { 
       testArray.push({name:records[i].data.id, boxLabel: records[i].data.display}); 
       alert(testArray[i].id); 
      } 
     } 
     } 
    }); 


    { 
         xtype:'combo', 
         id:'comboid3',       
         store:combostore, 
         displayField:'display', 
         valueField:'id', 
         tabIndex:1, 
         loadingText:'Loading combo...', 
         listeners :{ 
            select:function(event){ 
             testStore.baseParams = { 
               "comboid":Ext.getCmp('comboid3').getValue() 
              };           

             testStore.load(); 

            } 
         } 

        }, 
        { 


           xtype:'checkboxgroup', 
                 fieldLabel:'Check',        
           items:testArray 
      } 

도움을 받으실 수 있습니다!

답변

0

Ext JS 버전 지정은 항상 도움이 될 것입니다. 현재 버전이 아닌 2.x 또는 3.x 여야합니다.

타이밍 문제입니다.로드 호출이 비동기 적이므로 checkArray를 사용하려고 시도하면 checkbox 그룹의 items 속성을 구문 분석 할 때 빈 배열을 참조 할 가능성이 있습니다. 당신은 이것 주위에 몇 가지 옵션이 있습니다 ... 하나는 체크 박스 그룹에 대한 참조를 잡아서 그 안에 아이템을 추가하는 것입니다. 다른 하나는 호출이 리턴 될 때까지 체크 박스 그룹을 폼에 전혀 넣지 않고 populated items arrays. 두 경우 모두로드 처리기 함수 내에서 FormPanel 또는 CheckboxGroup에 대한 구성 요소 참조를 조회하고 'add'메소드를 호출하여 하위 항목을 추가해야 할 수 있습니다.

+0

버전은 3.1입니다. 위의 코드를 수정했습니다. 이제 체크 박스 저장소에 데이터가 채워지는 것을 볼 수 있습니다. 화면에 렌더링 할 수 없습니다. @ 리치 워터스 – redds1

관련 문제