2016-12-18 9 views
0

Я создал сетку в форме, и я динамически отображаю записи, и я использую редактор ячеек для редактирования столбца комментариев и в другом столбце, используя файловое поле для просмотра файла и отображая полный путь в столбце вложения. Смотрите код, который я использую:Как отобразить файловое поле в ячейке сетки в ExtJS

    { 
         xtype: 'container', 
         flex: 1, 
         layout: { 
          type: 'fit' 
         }, 
         items: [ 
          { 
           xtype: 'grid', 
           itemId: 'myAttachGrid', 
           reference: 'myAttachGrid ', 
           store: Ext.create('JSSample.store.attach.MyAttachGrid'), 
           multiSelect: true, 
           autoScroll: true, 
           columnWidth: 1, 
           editable: true, 
           columnLines: true, 
           plugins: [ 
            Ext.create('Ext.grid.plugin.CellEditing', { 
             clicksToMoveEditor: 1, 
             autoCancel: false 
            }) 
           ], 
           columns: [ 
            { 
             header: 'File', dataIndex: 'Attachments', width: '40%' 
            },           
            { 
             header: '', 
             dataIndex: '', 
             width: '10%', 
             hideable: true, 
             editor: { 
              xtype: 'filefield', 
              labelWidth: 50, 
              msgTarget: 'side', 
              buttonOnly: true, 
              anchor: '100%',             
              buttonText: '...', 
              listeners: { 
               change: function (fld, value) { 
                alert(value.replace(/C:\\fakepath\\/g, '')); 
               } 
              } 
             } 
            },          

            { 
             header: 'Comments', dataIndex: 'Comments', width: '50%', editor: 'textfield' 
            } 
           ] 
          } 
         ] 
        } 

После загрузки записей сетки показывает динамически, как это:

enter image description here

Теперь моя проблема FileField отображает после того, когда мы дважды щелкните клетка. [Ниже скриншот]:

enter image description here

Итак, я хочу, чтобы видимое FileField с записями [без двойного щелчка на ячейке].

+1

Просьба указать версию ExtJS. В ExtJS 6 имеется ['widgetcolumn'] (http://docs.sencha.com/extjs/6.0.1/classic/Ext.grid.column.Widget.html), который должен делать то, что вы хотите. – Alexander

+0

Я использую - Ext JS 6.0.2.437 –

ответ

0

Как @alexander, упомянутый в комментарии, с ExtJS 6 вы можете использовать Ext.grid.column.Widget, чтобы добавить поле файла в свою сетку.

Проверьте, например, this fiddle.

+0

Спасибо за помощь. но теперь мы получаем новую ошибку, когда мы очищаем сетку, используя store.removeAll(), получив следующую ошибку: Uncaught TypeError: focusEl.isTabbable не является функцией –