Set Config не является функцией - PullRequest
0 голосов
/ 22 октября 2018

У меня есть какой-то магазин, в котором формируются данные.На панели это выглядит как «fieldName» и текстовое поле (в зависимости от вызванной формы).Например, на одной форме отображается «имя документа» и поле, на другой - дата продажи и поле даты.Данные формируются динамически

Вот хранилище:

tableTempStore = new Ext.data.JsonStore({
    url: objectUrlAddress,
    baseParams: {
        'objectID': objectID
    },
    root: 'Fields',
    fields: [{
        name: 'Type',
        type: 'int'
    }, {
        name: 'Value'
    }, {
        name: 'IsRequired',
        type: 'bool'
    }, {
        name: 'Identifier'
    }, {
        name: 'Data'
    }],
    listeners: {
        load: function(obj, records) {
            Ext.each(records, function(rec) {

                var item = null;
                switch (rec.get('Type')) {
                    case 0:
                        item = new Ext.form.NumberField();
                        item.id = rec.get('Identifier');
                        item.fieldLabel = rec.get('Hint');
                        var isRequired = rec.get('IsRequired');
                        item.anchor = '100%';
                        item.allowBlank = !isRequired;
                        item.disabled = editDisabled;
                        item.value = rec.get('Data');
                        break;
                    case 1:
                        item = new Ext.form.NumberField();
                        item.id = rec.get('Identifier');
                        item.fieldLabel = rec.get('Hint');
                        var isRequired = rec.get('IsRequired');
                        item.anchor = '100%';
                        item.allowBlank = !isRequired;
                        item.allowDecimals = true;
                        item.disabled = editDisabled;
                        item.value = rec.get('Data');
                        break;
                }
                if (item != null) {
                    grid.add(item);
                    columnsTable = item.__proto__.constructor.xtype;
                        source[item.fieldLabel] = '';
                        grid.setSource(source);
                        var cm = grid.getColumnModel();
                        var valCol = cm.getColumnAt(1);
                        if (columnsTable=='textfield')
                        {
                            valCol.setConfig({
                                header: 'Поле', 
                                id:'name',
                               editor:  {xtype: 'textfield'}
                            });
                        }
                        else if (columnsTable == 'combo')
                        {
                            valCol.setConfig({
                               xtype: new Ext.grid.GridEditor(new Ext.form.ComboBox()),
                               allowBlank: false,
                            });
                        }
                        else if (columnsTable == 'datefield')
                        {
                            valCol.setConfig({
                               xtype: new Ext.grid.GridEditor(new Ext.form.DateField()),
                               allowBlank: false,
                            });
                        }
                }
            });
            grid.setSource(source);
        }
    }
});

Но у меня есть какая-то ошибка: setConfig не является функцией.Почему, если он работает в других событиях.

Вот Сетка:

grid = new Ext.grid.PropertyGrid({
        title: 'Properties Grid',
        id: 'propGrid',
        customEditors: 
        {
            tableValue: new Ext.grid.GridEditor(new Ext.form.ComboBox())
        },
        autoFill: true,
        autoHeight: true,
        width: 600
        });
...