Я не знаю ни одного встроенного «средства визуализации форм», но вы можете создать аналог, используя loadRecord формы.
Прежде всего вы создаете форму с тем же набором входных данных, что и форма columns
(очевидно, вы можете сделать это динамически). Например, если ваш columns
конфиг выглядит так:
columns: [
{header: 'Name', dataIndex: 'name'},
{header: 'Email', dataIndex: 'email', flex:1},
{header: 'Phone', dataIndex: 'phone'}
],
Конфигурация вашей формы должна выглядеть следующим образом:
Ext.define('ux.FormEditor', {
extend: 'Ext.window.Window',
alias : 'widget.formeditor',
title : 'Edit User',
layout: 'fit',
autoShow: true,
initComponent: function() {
this.items = [{
xtype: 'form',
items: [{
xtype: 'textfield',
name : 'name',
fieldLabel: 'Name'
},{
xtype: 'textfield',
name : 'email',
fieldLabel: 'Email'
},{
xtype: 'textfield',
name : 'phone',
fieldLabel: 'Phone'
}]
}];
this.buttons = [{
text: 'Save',
action: 'save'
},{
text: 'Cancel',
scope: this,
handler: this.close
}];
this.callParent(arguments);
}
});
Теперь вы назначаете обработчик для события itemdblclick
сетки:
yourGrid.on('itemdblclick', function(grid, record) {
var view = Ext.widget('useredit'),
form = view.down('form');
form.loadRecord(record);
view.down('button[action=save]').on('click', function(btn) {
var rec = form.getRecord(),
values = form.getValues();
rec.set(values);
view.close();
});
});