Code:
Ext.Loader.setConfig({enabled: true});Ext.Loader.setPath('Ext.ux', 'ux');
//Model
Ext.define('Purchase_History', {
extend: 'Ext.data.Model',
fields: [ 'name', 'last_name', 'Product' , 'Price' , 'Gender' ]
});
//Store (Database)
var Purchase_History_Stor = Ext.create('Ext.data.Store', {
model: 'Purchase_History',
groupField: 'Gender',
remoteFilter: false,
data: [
{ name: 'Maor', last_name: 'Genis', Product: 'Tablet' , Price: 300, Gender: 'Male' },
{ name: 'Dana', last_name: 'Vaizer', Product: 'Charger' , Price: 45 , Gender: 'Female' },
{ name: 'Shlomo', last_name: 'Choen', Product: 'Laptop' , Price: 2400 , Gender: 'Male' },
{ name: 'Avi', last_name: 'Kataln', Product: 'Speakers' , Price: 250 , Gender: 'Male' },
{ name: 'Ira', last_name: 'Brele', Product: 'iPhone' , Price: 3500, Gender: 'Female' },
{ name: 'Sivan', last_name: 'Medir', Product: 'Ipad' , Price: 2800 , Gender: 'Male' },
{ name: 'Sasha', last_name: 'Novik', Product: '24" Screen' , Price: 900, Gender: 'Male' },
{ name: 'Lital', last_name: 'Baret', Product: '19" Screen' , Price: 600 , Gender: 'Female' }
]
});
//Gruop by Gender View
var GenderGrouping = Ext.create('Ext.grid.feature.Grouping',{
groupHeaderTpl: 'Gender: {name} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})',
hideGroupedHeader: true
});
//Rander Database Grid (View)
Ext.create('Ext.grid.Panel', {
renderTo: 'GridContainer',
store: Purchase_History_Stor,
width: 400,
height: 218,
iconCls: 'icon-grid',
title: 'Purchase History',
features: [GenderGrouping],
columns: [
{
text: 'Name',
width: 100,
sortable: true,
hideable: false,
filterable: true,
dataIndex: 'name'
},
{
text: 'Last Name',
width: 100,
sortable: true,
hideable: false,
dataIndex: 'last_name'
},
{
text: 'Product',
width: 100,
sortable: true,
hideable: false,
dataIndex: 'Product'
},
{
text: 'Price',
width: 100,
sortable: true,
hideable: false,
dataIndex: 'Price'
}
]
});