2014-01-09 1 views
3

스토어를 사용하여 목록의 일부 데이터를 표시합니다. 스토어에는 한 화면에 그루퍼가 있고 다른 화면에는 그루퍼가 없습니다. 스트로크에서 그루퍼를 동적으로 추가하고 제거 할 수 있습니까? 모든 종류의 지원에 감사드립니다. 동적으로 스토어 그루퍼 추가 및 제거

코드이다

Ext.define ('MyApp.store.mystore'{

extend: 'Ext.data.Store', 
requires: ['Ext.data.proxy.LocalStorage'], 
config: { 
    identifier: { 
     type: 'uuid', 
    }, 
    fields: [ 
     {name: 'Fname', type: 'string'}, 
     {name: 'Lname', type: 'string'} 

    ], 
    remoteSort: true, 
    /* grouper: { 
    groupFn: function(record) { 
    if(localStorage.getItem('mainCategory')=='CONSOLIDATE REPORT') 
    return record.get('mainCategory'); 
    else 
    return record.get('category_name'); 
    } 
    },*/ 
    // groupField: ['Fname'], 
    proxy: { 
     type: 'localstorage', 
     id: 'myyystore' 
    } 
} 

});

내 목록에 지금은 그루퍼 속성이 없습니다.

내 요구 사항은 한 화면에 그루퍼 (Fname)가있는 목록을 표시하고 다른 화면에는 그루퍼가없는 목록을 표시하는 것입니다.

답변

0

두 개의 다른 Ext.List를 가질 수 있으며 grouped 구성을 제어 할 수 있습니다. 인스턴스화 할 때

또는 당신은 단지 그것을 전달할 수 있습니다

var list = Ext.create('Myapp.view.MyList'); 
list.setGrouper(true); 

또는

myMainNavigation().push({ 
    xtype: 'my-list', 
    grouped: true 
}); 

는 당신이 그룹에 원하는 목록을 추가 뷰 내부

+0

응답 해 주셔서 감사합니다. 그러나 저장소에는 그룹화가 없습니다. 동적으로 그룹을 그룹화 할 수 있습니까? 하나의 화면에 그룹화 된 저장소가 있어야합니다. – almakki

+0

목록과 저장소 모두 그룹화 된 구성을 가지고 있습니다. 따라서 상점을 그룹화 된 상태로 유지할 수 있으며 그룹화를 설정하면 그룹화 된 것으로 표시되지 않습니다. 목록에는 false가 표시됩니다. –

0

을 helps- 희망 및
보기의 initialize 메서드 내부에 추가 :

var store = this.down('.list').getStore(); 

store.sort({ 
    groupFn: function(record) { 
     var isReport = (localStorage.['mainCategory'] === 'CONSOLIDATE REPORT'); 

     return record.get(isReport ? 'mainCategory' : 'category_name'); 
    } 
});