Thank you for reporting this bug. We will make it our priority to review this report.
  1. #1
    Sencha User matei's Avatar
    Join Date
    Jun 2008
    Vote Rating
    matei is on a distinguished road


    Exclamation [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
    Browser versions tested against:
    • 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
    Steps to reproduce the problem:
    • Try to select first then second checkbox from selection model.
    • Error is shown in firebug.
    • Code:
      this.config[a].getCellEditor is not a function
     * Ext JS Library 3.4.0
     * Copyright(c) 2006-2011 Sencha Inc.
         * 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: [
                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{
            // 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{
                // 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
                    store.insert(0, p);
                    grid.startEditing(0, 0);
        // manually trigger the data store load
            // store loading is asynchronous, use a load listener or callback to handle results
            callback: function(){
                    title: 'Store Load Callback',
                    msg: 'store was loaded, data available for processing',
                    modal: false,
                    icon: Ext.Msg.INFO,
                    buttons: Ext.Msg.OK

  2. #2
    Sencha User matei's Avatar
    Join Date
    Jun 2008
    Vote Rating
    matei is on a distinguished road



    Possible fix:
    Ext.override(Ext.grid.CheckboxSelectionModel, {
        getCellEditor: function(){
            return null;
    this way I fixed for our application.

Turkiyenin en sevilen filmlerinin yer aldigi xnxx internet sitemiz olan ve porn sex tarzi bir site olan mobil porno izle sitemiz gercekten dillere destan bir durumda herkesin sevdigi bir site olarak tarihe gececege benziyor. Sitenin en belirgin ozelliklerinden birisi de Turkiyede gercekten kaliteli ve muntazam, duzenli porno izle siteleri olmamasidir. Bu yuzden iste. Ayrica en net goruntu kalitesine sahip adresinde yayinlanmaktadir. Mesela diğer sitelerimizden bahsedecek olursak, en iyi hd porno video arşivine sahip bir siteyiz. "The Best anal porn videos and slut anus, big asses movies set..." hd porno faketaxi