首页 > 解决方案 > ExtJs 中网格中的动态列

问题描述

我有一些商店,这是形成的数据。在面板上,它看起来如何“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);
                    tableValue = Ext.getCmp('propGrid').doLayout();
                    source[item.fieldLabel] = tableValue;
                    //grid.doLayout();
                }
            });
            grid.setSource(source);
        }
    }
});

此代码已在表单中工作,但我需要使用 Grid(或 Editor Grid)。我知道,如何显示字段名称(“文档名称”等),但我不明白,如何显示文本字段等。对于我使用 doLayout 的表单。我怎样才能做到这一点?

这是网格:

var templateGrids = new Ext.grid.EditorGridPanel({
    id: 'tableId',
    height:300,
    width: '100%',
    clicksToEdit:1,
    frame: true,
    store: tableTempStore,
    columns: [
    {header: 'Value' dataIndex: typeValue}, 
    {header: 'Name' dataIndex: ''}]
    })

请帮我!提前感谢您的回答!

标签: javascriptjsonextjs

解决方案


推荐阅读