2015-02-17 4 views
0

Я хочу создать панель сетки и любую добавленную пользователем строку, вставить файл. Другими словами, один столбец в любой строке является полем файла.Поле файла в любой строке панели сетки extjs

Как я могу это сделать?

обновление:

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); 
    } 
}); 

Я хочу любой строке выбрать значок, а затем отправить любую строку (с указанием имен файлов и переменных) на сервер. Как это сделать?

ответ

1

Попробуйте использовать DefaultType, чтобы сделать это, как это показано ниже:

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

Проверить this демо, я создал для вас. Я использую CellEditing, чтобы отредактировать выбранную ячейку, проверить щелчок по имени ячейки.

+0

Спасибо за ваш ответ, теперь Как я отправляю строку на сервер (файл и другие переменные)? –

+0

вы можете использовать метод PUT для вашего ajax для отправки файла, а для переменных вы можете использовать POST. Это зависит от вас, см. Документацию [this] (http://docs-origin.sencha.com/extjs/4.2.1/#!/api/Ext.form.field.File). –

+0

Но только значение последней строки посылает сервер, я обновил свой вопрос. –

Смежные вопросы