2017-02-01 6 views
1

예를 들어 3000 개의 레코드가 있고 내 pageSize가 250 인 저장소가 있습니다. 레코드의 고유 값도 있습니다 (product_id = 2333) 이 레코드는 아직로드되지 않으므로 store.findRecord("product_id", product_id)은 null을 반환합니다.Extjs 4 원격 저장소에서 아직로드되지 않은 레코드의 인덱스를 가져옵니다.

내 질문은 인덱스를 가져온 후에 올바른 페이지를로드 할 수 있도록 내로드되지 않은 레코드의 인덱스를 얻는 방법입니다.

답변

0

당신은 상점의 온로드 방법을 사용한다 : 당신은 이미 존재하지 않는 경우 기록을 찾을 수 없습니다

store.on('load',function(component,records){ 
    //here all the records are loaded, so: 
    component.findRecord('prop',value)//will return your record 
    //here you can load the page you need 
},this,{single:true}); 

을 수있는 유일한 방법은 저장소가로드 전까지 기다리는 것입니다.

속성으로 single:true을 전달하면 옵션은로드 수신기에서 설정할 때마다이 함수가 한 번만 실행된다는 것을 나타냅니다.

스토어로드가 추가하는 모든 리스너를 실행하지 않는다면주의하십시오.

당신이 할 수있는 완벽한 방법을 원하는 경우에 그 :

view.mask('loading the page...'); 

store.on('load',function(component,records){ 
     component.findRecord('prop',value)//will return your record 
     //here you can load the page you need 
     page.load(); //simply example 
     view.unmask(); 
},this,{single:true}); 
store.load(); 

또는

view.mask('loading the page...'); 

    store.load(function(records){ 
      store.findRecord('prop',value)//will return your record 
      //here you can load the page you need 
      page.load(); //simply example 
      view.unmask(); 
    });