mercredi 30 avril 2014

how to filter store data from view

store:


Code:



Ext.create('Ext.data.Store', { storeId: 'sid', fields: ['name', 'enable', 'label', 'maxlength', 'order'], data: { 'items': [ { 'name': 'Lisa', "enable": true, "label": "555-111-1224", 'maxlength': 5, 'order': 3 }, { 'name': 'Bart', "enable": false, "label": "555-222-1234", 'maxlength': 5, 'order': 3 }, { 'name': 'Homer', "enable": true, "label": "555-222-1244", 'maxlength': 5, 'order': 3 }, { 'name': 'Marge', "enable": false, "label": "555-222-1254", 'maxlength': 5, 'order': 3 } ] }, proxy: { type: 'memory', reader: { type: 'json', root: 'items' } } });

view is grid bind to this store:


Code:



Ext.define('AlertScheduler.view.EventTitleGrid', { extend: 'Ext.grid.Panel', alias: 'widget.EventTitleGrid', store: Ext.data.StoreManager.lookup('sid'), columns: [ { text: '', dataIndex: 'name', flex: 1, align: 'center' }, { text: 'Enable', dataIndex: 'enable', width: 60, align: 'center' }, { text: 'Label', dataIndex: 'label', width: 140, align: 'center' }, { text: 'Maxlength', dataIndex: 'maxlength', width: 70, align: 'center' }, { text: 'Order', dataIndex: 'order', width: 60, align: 'center' } ], width: 450, forceFit: true, initComponent: function () { this.callParent(arguments); } });

From what I understand(i am new for Extjs if I was wrong please correct me) store will automatic load into view when view create.

question: how can I filter the store data before it load into view ? (for example I only want to load the data which name = Lisa) is there any method I can filter data in view level (grab all store data to view and filter them before actually load into view),

or can I pass the filter from view to store so store will filter data and return the data that view required ? (in my case I have different view share same store view1 look up data name = 'Lisa' and view2 look up data label = '555...' if the view pass different filter to store, store will return different sets data)


Aucun commentaire:

Enregistrer un commentaire