
SAUVEGARDE DONNEES SERVEUR AVEC GRIDPANEL EXTJS :

2 techniques :
- Modifier le Store pour supporter actions CRUD : (create, read, update, delete) - une page PHP par action


var Contacts = Ext.create('Ext.data.Store', {
			model: 'Contact',
			proxy: {
					type: 'ajax',
					api: {
							read : 'contact/view.php',
							create : 'contact/create.php',
							update: 'contact/update.php',
							destroy: 'contact/delete.php'
					},
					reader: {
							type: 'json',
							root: 'data',
							successProperty: 'success'
						},
					writer: {
							type: 'json',
							writeAllFields: true,
							encode: false,
							root: 'data'
						}
			}
		}
		);





TECHNIQUE 2 : Ajouter une barre d'outil :

var rowEditor = Ext.create('Ext.grid.plugin.RowEditing', {clicksToEdit: 1});
			
var grid = Ext.create('Ext.grid.Panel', {
			plugins: rowEditor,
			dockedItems: [{
				xtype: 'toolbar',
				items: [{
						text: 'Add',
					handler : function() {
								rowEditor.cancelEdit();
								// Crer une instance d'enregistrement via le ModelManager
								var r = Ext.ModelManager.create({
										name: 'New Contact',
										email: 'newcontact@email.com',
										phone: '1111-1111'
										}, 'Contact');
								Contacts.insert(0, r);   
								rowEditor.startEdit(0, 0);
							}
					},{
						text: 'Delete',
					 handler: function() {
									var sm = grid.getSelectionModel();
									rowEditor.cancelEdit();
									Contacts.remove(sm.getSelection());
									if (store.getCount() > 0) {
									sm.select(0);
					}
				}
			}]
		}]
	});

Autre bouton pour sauvegarder toutes les donnes : Contacts.sync() 
--> Meilleure pratique que de sauvegarder  chaque mise  jour cellule ( autoSync )

