--- /dev/null
+/**
+ * @example Row Editing
+ *
+ * This grid demonstrates row editing capabilities.
+ */
+Ext.require('Ext.data.Store');
+Ext.require('Ext.grid.Panel');
+Ext.require('Ext.form.field.Text');
+Ext.require('Ext.form.field.Date');
+Ext.require('Ext.form.field.Display');
+Ext.require('Ext.grid.plugin.RowEditing');
+
+Ext.define('User', {
+ extend: 'Ext.data.Model',
+ fields: [
+ { name: 'name', type: 'string' },
+ { name: 'email', type: 'string' },
+ { name: 'phone', type: 'string' },
+ { name: 'birthDate', type: 'date' }
+ ]
+});
+
+Ext.onReady(function() {
+
+ var userStore = Ext.create('Ext.data.Store', {
+ model: 'User',
+ data: {
+ items: [
+ { name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224', birthDate: new Date(1981, 9, 28) },
+ { name: 'Bart', email: 'bart@simpsons.com', phone: '555-222-1234', birthDate: new Date(1979, 4, 1) },
+ { name: 'Homer', email: 'home@simpsons.com', phone: '555-222-1244', birthDate: new Date(1956, 3, 15) },
+ { name: 'Marge', email: 'marge@simpsons.com', phone: '555-222-1254', birthDate: new Date(1954, 10, 1) }
+ ]
+ },
+
+ proxy: {
+ type: 'memory',
+ reader: {
+ type: 'json',
+ root: 'items'
+ }
+ }
+
+ });
+
+ Ext.create('Ext.grid.Panel', {
+ renderTo: Ext.getBody(),
+ store: userStore,
+ width: 400,
+ height: 200,
+ title: 'Application Users',
+ columns: [
+ {
+ text: 'Name',
+ flex: 1,
+ hideable: false,
+ dataIndex: 'name',
+ editor: {
+ //use a Ext.form.field.Text as the editor
+ xtype: 'textfield',
+ //prevent empty values from being inserted into this field
+ allowBlank: false
+ }
+ },
+ {
+ text: 'Email Address',
+ width: 130,
+ dataIndex: 'email',
+ //use a Ext.form.field.Text as the editor
+ editor: 'textfield'
+ },
+ {
+ text: 'Phone Number',
+ width: 85,
+ dataIndex: 'phone'
+ },
+ {
+ text: 'Birth Date',
+ width: 90,
+ dataIndex: 'birthDate',
+ //use a Ext.form.field.Date as the editor
+ editor: 'datefield',
+ // format the date using a renderer from the Ext.util.Format class
+ renderer: Ext.util.Format.dateRenderer('m/d/Y')
+ }
+ ],
+ selType: 'rowmodel',
+ plugins: [
+ Ext.create('Ext.grid.plugin.RowEditing', {
+ clicksToEdit: 1
+ })
+ ]
+ });
+
+});