2011-02-11 3 views
1

이 예제에서 : 페이지 하단에 http://www.sencha.com/forum/showthread.php?14503-Grid-Filter-(Plugin), gridfilter의 'buildQuery'메소드가 사용자 정의 논리를 제공하도록 재정의됩니다. 메토의 범위는 GridFilter입니다. 이 범위에서 그리드의 데이터 저장소에 액세스하려면 어떻게해야합니까?GridFilter의 범위 내에서 그리드에 대한 데이터 저장소에 액세스

목표는 필터 매개 변수를 데이터 저장소의 'baseParams'에 추가하는 것입니다.

답변

1

저장소는 Ext.ux.grid.GridFilters 개체의 속성입니다.

plugins: new Ext.ux.grid.GridFilters({ 
    buildQuery: function(filters){ 
     this.store. 
     var p = {}; 
     for(var i=0, len=filters.length; i<len; i++){ 
      // Custom filter serialization 

      //not sure what format filters comes in 
      this.store.setBaseParam('your_param', filters[i]) 
     } 

     return p; 
    } 
}); 
+0

감사합니다 : 그것은 다음과 같은 쉽게해야한다에 따라서, 당신은 당신이 연결 한 페이지의 하단에있는 예에서 일반적으로 this.store

를 사용하여 액세스 할 수 있어야합니다. 이것은 잘 작동합니다. 호기심에서, 'your_param'이 배열이고 기존의 'your_param'에 필터 [i] (i = 1,2 ... n)를 완전히 덮어 쓰지 않고 추가하려는 경우 구문에 허용됩니까? 비슷한 : this.store.getBaseParams(). get ('your_param'). append (filters [i]) – Victor

+0

아닙니다. 저장소는 객체 인 public property ** baseParams **를 통해 BaseParams에 액세스 할 수 있습니다. AFAIK, ** your_param **이 배열 인 경우 다음과 같이해야합니다. var myParam = this.baseParams.your_param; myParam.push (filters [i]); this.store.setBaseParam ('your_param', myParam); – NT3RP

+0

감사합니다 !! 이것이 바로 문제를 해결할 수있는 것입니다. – Victor

관련 문제