2017-12-05 3 views
0

Ich habe dieses Raster und möchte 2 Gruppen in eine einzelne Gruppe basierend auf dem Status gruppieren. Grundsätzlich möchte ich "Cheched-In" und "Bereit für MA" in einer einzigen Gruppe zusammenstellen. Vielen Dank für die Hilfe!Wie gruppiere ich 2 Gruppen in 1 Gruppe in Extjs Grid?

Hier ist der Arbeitscode:FIDDLE

Ext.create('Ext.grid.Panel', { 
title: 'Employees', 
store: store, 
columns: [ 
    { text: 'Box', dataIndex: 'box', width: 50 }, 
    { text: 'Name', dataIndex: 'name', flex: 2 }, 
    { text: 'Status', dataIndex: 'status', flex: 1 } 
], 
features: [{ftype:'grouping'}], 
renderTo: Ext.getBody() 
}); 

Antwort

0

Sie können versuchen, ein anderes Feld für die Gruppierung zu haben, versuchen Sie diese

function addGroupField(data) { 
    return data.map(function(row) { 
    return { 
     box: row.box, 
     name: row.name, 
     status: row.status, 
     groupedStatus: [ 
     'Checked-In', 
     'Ready for MA' 
     ].indexOf(row.status) > -1 ? 'Checked-In & Ready for MA' : row.status, 
    } 
    }); 
} 

var data = addGroupField([ 
    { box: '', name: 'Brady, Marsha',status: 'Checked-In' }, 
    { box: 'MA', name: 'Dwight, Schrute', status: 'With MA' }, 
    { box: 'MA', name: 'Jim, Halpert', status: 'With MA' }, 
    { box: 'MA', name: 'Mike, Brown', status: 'With MA' }, 
    { box: 'MA', name: 'Steve, Smith', status: 'With MA' }, 
    { box: 'MA', name: 'Lori, Morrison', status: 'With MA' }, 
    { box: 'MA', name: 'Mary, Loson', status: 'With MA' }, 
    { box: 'MA', name: 'Junior, Meloni', status: 'With MA' }, 
    { box: 'MA', name: 'Jim, Halpert', status: 'With MA' }, 
    { box: '', name: 'Kevin, Malone', status: 'Checked-In' }, 
    { box: '', name: 'Angela, Martin', status: 'Checked-In' }, 
    { box: '2', name: 'Jim, Halpert', status: 'Ready for MA' }, 
    { box: '2', name: 'Kevin, Malone', status: 'Ready for MA' }, 
    { box: '2', name: 'Angela, Martin', status: 'Ready for MA' } 
]); 

var store = Ext.create('Ext.data.Store', { 
    fields: ['name', 'seniority', 'department'], 
    groupField: 'groupedStatus', 
    data: data 
}); 

Ext.onReady(function() { 
    Ext.create('Ext.grid.Panel', { 
    title: 'Employees', 
    store: store, 
    columns: [ 
     { text: 'Box', dataIndex: 'box', width: 50 }, 
     { text: 'Name', dataIndex: 'name', flex: 2 }, 
     { text: 'Status', dataIndex: 'status', flex: 1 } 
    ], 
    features: [{ftype:'grouping'}], 
    renderTo: Ext.getBody() 
    }); 
}); 
+0

es funktionierte! Gibt es eine Möglichkeit, auch einen Gruppentitel auf der rechten Seite jeder Gruppe wie "TEAM FIRST" und für die zweite Gruppe "TEAM SECOND" hinzuzufügen? Ich hätte gerne den Titel auf der gleichen Ebene wie der "Checked-In & Ready for MA" -Title, aber auf der rechten Seite – HenryDev

+1

Sie können tatsächlich HTML-Feldwerte eingeben, so dass Sie etwas wie diese Checked-In & Ready versuchen können für MA

TEAM FIRST
'zum Beispiel –

+0

Sicher bue müssen Sie Ihre Frage aktualisieren, damit andere Leute nicht verwirrt werden –

Verwandte Themen