extjs网格面板任意一行的文件字段

File field in any row of extjs grid panel

我想创建一个网格面板,对于用户添加的任何行,插入一个文件,换句话说,任何行中的一列都是一个文件字段。

我该怎么做?

更新:

Ext.define('FM.view.map.DefineCode', {
    extend: 'Ext.window.Window',
    title: 'Define Code',
    alias: 'widget.mmDefineCode',
    width: 600,
    modal: true,
    items: [{
        xtype: 'form',
        items: [{
            xtype: 'gridpanel',
            title: 'myGrid',
            store: 'DefineCode',
            columns: [
                {
                    text: 'Id',
                    xtype: 'rownumberer',
                    width: 20 
                }, {
                    text: 'Name',
                    dataIndex: 'name',
                    flex: 1, 
                    editor:{
                        xtype: 'textfield'
                    }
                }, {
                    text: 'File', 
                    dataIndex: 'filename', 
                    width: 200,
                    editor:{
                        xtype: 'filefield',
                        emptyText: 'Select your Icon',
                        name: 'photo-path',
                        buttonText: '',
                        flex: 1,
                        buttonConfig: {
                            iconCls: 'icon-upload-18x18'
                        },
                        listeners: {
                            change: function(e, ee, eee) {

                                var grid = this.up('grid');
                                var store = grid.getStore();
                                var newStore = Ext.create('FM.store.Path',{});
                                store.insert(store.data.items.length, newStore);
                            }
                        }
                    },
                }, { 
                    text: '', 
                    width: 40 
                }
            ],
            height: 200,
            width: 600,
            plugins: [
                Ext.create('Ext.grid.plugin.CellEditing', {
                    clicksToEdit: 1
                })
            ]}
        ],
    }],
    buttons: [{text: 'OK', action: 'OK'}],
    initComponent: function() {
        var me = this;


        Ext.apply(me, {});
        me.callParent(arguments);
    }
});

我想要任何行 select 一个图标,然后将任何行(带有名称和文件名变量)发送到服务器。这是怎么做到的?

尝试使用 defaultType 来做到这一点,如下所示:

defaultType: 'filefield',
    items: [{
        fieldLabel: 'Document 1',
        name: 'first',
        allowBlank: false
    }, {
        fieldLabel: 'Document 2',
        name: 'second',
        allowBlank: false
    }],

查看 this 演示,我已经为您创建了。 我正在使用 CellEditing 编辑您单击的单元格,测试单击单元格名称。