-
18 Aug 2011 9:23 AM #1
[3.4.0] this.config[a].getCellEditor is not a function
[3.4.0] this.config[a].getCellEditor is not a function
Ext version tested:
- Ext 3.4.0 - error is shown
- Ext 3.2.1 - no errors
- Chrome
- FF5
- When try to Combine EditorGridPanel with CheckboxSelectionModel and filter some rows that can't be editable.
- changes (in red), made in ext-3.4.0\examples\grid\edit-grid.js
- Try to select first then second checkbox from selection model.
- Error is shown in firebug.
- Code:
this.config[a].getCellEditor is not a function
Code:/*! * Ext JS Library 3.4.0 * Copyright(c) 2006-2011 Sencha Inc. * licensing@sencha.com * http://www.sencha.com/license */ Ext.onReady(function(){ /** * Handler specified for the 'Available' column renderer * @param {Object} value */ function formatDate(value){ return value ? value.dateFormat('M d, Y') : ''; } // shorthand alias var fm = Ext.form; var sm = new Ext.grid.CheckboxSelectionModel({ checkOnly: true }); // the column model has information about grid columns // dataIndex maps the column to the specific data field in // the data store (created below) var cm = new Ext.grid.ColumnModel({ // specify any defaults for each column defaults: { sortable: true // columns are not sortable by default }, isCellEditable: function(column, row){ return row % 2; }, columns: [ sm, { id: 'common', header: 'Common Name', dataIndex: 'common', width: 220, // use shorthand alias defined above editor: new fm.TextField({ allowBlank: false }) }, { header: 'Light', dataIndex: 'light', width: 130, editor: new fm.ComboBox({ typeAhead: true, triggerAction: 'all', // transform the data already specified in html transform: 'light', lazyRender: true, listClass: 'x-combo-list-small' }) }, { header: 'Price', dataIndex: 'price', width: 70, align: 'right', renderer: 'usMoney', editor: new fm.NumberField({ allowBlank: false, allowNegative: false, maxValue: 100000 }) }, { header: 'Available', dataIndex: 'availDate', width: 95, renderer: formatDate, editor: new fm.DateField({ format: 'm/d/y', minValue: '01/01/06', disabledDays: [0, 6], disabledDaysText: 'Plants are not available on the weekends' }) }, { xtype: 'checkcolumn', header: 'Indoor?', dataIndex: 'indoor', width: 55 }] }); // create the Data Store var store = new Ext.data.Store({ // destroy the store if the grid is destroyed autoDestroy: true, // load remote data using HTTP url: 'plants.xml', // specify a XmlReader (coincides with the XML format of the returned data) reader: new Ext.data.XmlReader({ // records will have a 'plant' tag record: 'plant', // use an Array of field definition objects to implicitly create a Record constructor fields: [ // the 'name' below matches the tag name to read, except 'availDate' // which is mapped to the tag 'availability' {name: 'common', type: 'string'}, {name: 'botanical', type: 'string'}, {name: 'light'}, {name: 'price', type: 'float'}, // dates can be automatically converted by specifying dateFormat {name: 'availDate', mapping: 'availability', type: 'date', dateFormat: 'm/d/Y'}, {name: 'indoor', type: 'bool'} ] }), sortInfo: {field:'common', direction:'ASC'} }); // create the editor grid var grid = new Ext.grid.EditorGridPanel({ store: store, cm: cm, sm: sm, renderTo: 'editor-grid', width: 600, height: 300, autoExpandColumn: 'common', // column with this id will be expanded title: 'Edit Plants?', frame: true, clicksToEdit: 1, tbar: [{ text: 'Add Plant', handler : function(){ // access the Record constructor through the grid's store var Plant = grid.getStore().recordType; var p = new Plant({ common: 'New Plant 1', light: 'Mostly Shade', price: 0, availDate: (new Date()).clearTime(), indoor: false }); grid.stopEditing(); store.insert(0, p); grid.startEditing(0, 0); } }] }); // manually trigger the data store load store.load({ // store loading is asynchronous, use a load listener or callback to handle results callback: function(){ Ext.Msg.show({ title: 'Store Load Callback', msg: 'store was loaded, data available for processing', modal: false, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } }); });
-
23 Aug 2011 7:49 AM #2
Possible fix:
this way I fixed for our application.Code:Ext.override(Ext.grid.CheckboxSelectionModel, { getCellEditor: function(){ return null; } });
Thank you for reporting this bug. We will make it our priority to review this report.


Reply With Quote