2015-01-13 3 views
0

나는 store.group()을 사용하여 여러 필드로 그리드를 그룹화하는 옵션을 제공합니다. 4.2.1에서 많은 버그가 발생한 후에 extjs4.2.3을 사용하면 store.group()이 전혀 작동하지 않는 것 같습니다. 복제 방법 : 그리드를 그룹화해야하는 "그룹"버튼을 누르십시오. 데이터 만 정렬합니다. 열 메뉴에서 "이 필드로 그룹화"를 선택하면 그룹화가 제대로 작동합니다.ExtJS 4.2.3 그룹화 버그

마찬가지로 store.clearGrouping()도 같은 방식으로 작동합니다. 다음은 샘플 코드입니다 :

Ext.define('TestResult', { 
    extend: 'Ext.data.Model', 
    fields: ['student', 'subject', { 
     name: 'mark', 
     type: 'int' 
    }] 
}); 

Ext.create('Ext.grid.Panel', { 
    width: 200, 
    height: 240, 
    itemId: 'gridtest', 
    renderTo: document.body, 
    features: [{ 
     groupHeaderTpl: 'Subject: {name}', 
     ftype: 'groupingsummary' 
    }], 
    store: { 
     model: 'TestResult', 
     itemId: 'testStore', 
     //groupField: 'subject', 
     data: [{ 
      student: 'Student 1', 
      subject: 'Math', 
      mark: 84 
     }, { 
      student: 'Student 1', 
      subject: 'Science', 
      mark: 72 
     }, { 
      student: 'Student 2', 
      subject: 'Math', 
      mark: 96 
     }, { 
      student: 'Student 2', 
      subject: 'Science', 
      mark: 68 
     }] 
    }, 
    columns: [{ 
     dataIndex: 'student', 
     text: 'Name', 
     summaryType: 'count', 
     summaryRenderer: function(value) { 
      return Ext.String.format('{0} student{1}', value, value !== 1 ? 's' : ''); 
     } 
    }, { 
     dataIndex: 'mark', 
     text: 'Mark', 
     summaryType: 'average' 
    }], 
    tbar: [{ 
     xtype: 'button', 
     text: 'Group', 
     handler: function(button, e) { 
      var store = Ext.ComponentQuery.query('#gridtest')[0].getStore(); 
      store.group('subject'); 
     } 
    }, { 
     xtype: 'button', 
     text: 'clear', 
     handler: function(button, e) { 
      var store = Ext.ComponentQuery.query('#gridtest')[0].getStore(); 
      store.clearGrouping(); 
     } 
    }] 

}); 

의 ExtJS의 4.2.1의 코드 실행하기 엽차 바이올린에서 잘 작동하지만,하지에 4.2.3 나는 http://docs.sencha.com/extjs/4.2.3/의 코드 미리보기 옵션을 사용하여 테스트.

답변

0

위의 코드는 extjs-4.2.3에서 올바르게 작동합니다.

열기 http://docs.sencha.com/extjs/4.2.3/ 개발자 도구 콘솔 탭에서 다음 코드를 실행하십시오. - '그룹'버튼의 그룹이 정상적으로 작동합니다.

Ext.define('TestResult', { 
    extend: 'Ext.data.Model', 
    fields: ['student', 'subject', { 
    name: 'mark', 
    type: 'int' 
    }] 
}); 

var grpGrid = Ext.create('Ext.grid.Panel', { 
    width: 200, 
    height: 240, 
    itemId: 'gridtest', 
    renderTo: document.body, 
    features: [{ 
    groupHeaderTpl: 'Subject: {name}', 
    ftype: 'groupingsummary' 
    }], 
    store: { 
    model: 'TestResult', 
    itemId: 'testStore', 
    //groupField: 'subject', 
    data: [{ 
     student: 'Student 1', 
     subject: 'Math', 
     mark: 84 
    }, { 
     student: 'Student 1', 
     subject: 'Science', 
     mark: 72 
    }, { 
     student: 'Student 2', 
     subject: 'Math', 
     mark: 96 
    }, { 
     student: 'Student 2', 
     subject: 'Science', 
     mark: 68 
    }] 
    }, 
    columns: [{ 
    dataIndex: 'student', 
    text: 'Name', 
    summaryType: 'count', 
    summaryRenderer: function(value) { 
     return Ext.String.format('{0} student{1}', value, value !== 1 ? 's' : ''); 
    } 
    }, { 
    dataIndex: 'mark', 
    text: 'Mark', 
    summaryType: 'average' 
    }], 
    tbar: [{ 
    xtype: 'button', 
    text: 'Group', 
    handler: function(button, e) { 
     var store = Ext.ComponentQuery.query('#gridtest')[0].getStore(); 
     store.group('subject'); 
    } 
    }, { 
    xtype: 'button', 
    text: 'clear', 
    handler: function(button, e) { 
     var store = Ext.ComponentQuery.query('#gridtest')[0].getStore(); 
     store.clearGrouping(); 
    } 
    }] 

}); 

Ext.create('Ext.window.Window', { 
    title: 'Hello', 
    height: 200, 
    width: 400, 
    layout: 'fit', 
    items: [grpGrid] 
}).show(); 
+0

월 엽차 바이올린 EXT-4.2.3 버전의 일부 문제를 해결합니다. – Chetan

+0

안녕 Chetan, docs.sencha.com에서 실행하는 방법에 대해 자세히 설명해 주시겠습니까? 개발자 도구 콘솔 탭을 찾을 수 없습니다. –

+0

Chrome 브라우저에서 개발자 도구를 얻으려면 F12 키를 누르고 콘솔 탭에서 위 코드를 복사하여 붙여 넣어 실행하십시오. 위의 눈금과 함께 작동하는 플로팅 윈도우가 나타나야합니다. – Chetan

0

문제는 ExtJS에 대한 야간 빌드에서 해결 4.2.4 결함 ID : ExtJS로-15190 link

관련 문제