2013-08-20 2 views
1

결함을 보여주는 랠리 그리드가 있습니다. 결함이 열리는 일 수를 나타내는 열을 추가하고 싶습니다.SDK2 : 랠리 그리드에서 사용자 정의 열 정렬

저는 configs 열에 사용자 정의 렌더러를 추가하여이 작업을 수행 할 수 있음을 알고 있지만이 열을 정렬하고 싶습니다. 아쉽게도 렌더러는 열의 정렬을 변경하지 않습니다.

새로운 가상 열 (이 경우에는 openAgeDays)을 만드는 대신 저장소에서 convert() 함수를 사용할 수 있다고 생각하지만 생성자에서이 작업을 수행하는 방법을 잘 모르겠습니다. storeConfig를 일부 변경한다고 가정합니다.

누가 변환 함수를 사용하여 옳은 방법이라고 가정하면 랠리 그리드에 새로운 가상의 정렬 가능한 열을 추가하는 방법에 대한 예가 있습니까?

  this.grid = this.add({ 
       xtype: 'rallygrid', 
       model: model, 
       disableColumnMenus: false, 
       storeConfig: [...] 
+1

[사용자 정의 열 렌더러 종류와 랠리 그리드 (의 중복 가능성 http://stackoverflow.com/questions/17755746/rally-grid-with-custom-column-renderer-sort) –

답변

1

중복의 대답은, 당신은 열에 doSort를 추가 할 수 있습니다

 {dataIndex: 'Parent', name: 'Parent', 
      doSort: function(state) { 
       var ds = this.up('grid').getStore(); 
       var field = this.getSortParam(); 
       console.log('field',field); 
       ds.sort({ 
        property: field, 
        direction: state, 
        sorterFn: function(v1, v2){ 
         console.log('v1',v1); 
         console.log('v2',v2); 
         if (v1.raw.Parent) { 
          v1 = v1.raw.Parent.Name; 
         } else { 
          v1 = v1.data.Name; 
         } 

         if (v2.raw.Parent) { 
          v2 = v2.raw.Parent.Name; 
         } else { 
          v2 = v2.data.Name; 
         } 

         return v1.localeCompare(v2); 
        } 
       }); 
      }, 
      renderer: function(value, meta, record) { 
       var ret = record.raw.Parent; 
       if (ret) { 
        return ret.Name; 
       } else { 
        meta.tdCls = 'invisible'; 
        return record.data.Name; 
       } 
      } 
     },