PropertyGrid в ExtJs

137
14 февраля 2019, 07:20

У меня есть store со значениями, где хранятся типы данных и их обозначения с id и т.д. В зависимости от вызванной формы на экране отражаются разные данные. Например, в первом случае можно увидеть "название документа" и поле для ввода, в другом - дата и поле для даты. Данные формируются динамически.

Вот как выглядит мой store

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);
                    tableValue = Ext.getCmp('propGrid').doLayout();
                    source[item.fieldLabel] = tableValue;
                    //grid.doLayout();
                }
            });
            grid.setSource(source);
        }
    }
});

На форме всё отображается как надо. Но мне нужно использовать PropertyGrid. Как вывести значение полей я знаю, но как вывести и поля для ввода напротив них?

grid = new Ext.grid.PropertyGrid({
    title: 'Properties Grid',
    id: 'propGrid',
    autoFill: true,
    autoHeight: true,
    width: 600
});
READ ALSO
OAuth is limited to 100 sensitive scope logins until OAuth consent screen is published

OAuth is limited to 100 sensitive scope logins until OAuth consent screen is published

я попыталась создать айди клиента мне выскочила такая ошибка что нужна публикация для создания

123
Редирект с querystring Vue-router

Редирект с querystring Vue-router

Мне от Гугла (при авторизации) приходит querystringОднако Vue-router , делает редирект на языковую зону без нее

126
Неясная конструкция js

Неясная конструкция js

Всем привет! Ребята, учусь js, разбирая плагин dropzonejs

117