У меня есть какой-то магазин, в котором формируются данные.На панели это выглядит как «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
});