Estoy intentando rellenar dinámicamente un FormPanel ExtJs desde un registro de almacén de datos. Cuando el usuario hace clic en una fila en el GridPanel, se invoca el método buildForm y el registro cliqueado se envía como el primer arg.ExtJs construye dinámicamente un panel de formulario desde un registro de almacén de datos
Parece que el código siguiente (cuando se realiza la depuración) funciona, pero el método doLayout no tiene ningún efecto.
¿Alguien puede indicarme la dirección correcta?
mymodule = Ext.extend(Ext.FormPanel, {
forceLayout: true,
initComponent: function() {
Ext.applyIf(this, {
id: Ext.id(),
labelWidth: 75,
defaultType: 'textfield',
items: [{
layout: 'form',
items: [{
fieldLabel: 'test',
xtype: 'textfield'
}, {
fieldLabel: 'test',
xtype: 'textfield'
}]
}]
});
mymodule.superclass.initComponent.call(this);
},
buildForm: function (record, c) {
var form = this.getForm();
var formItems = new Ext.util.MixedCollection();
Ext.each(record.fields.items, function (item) {
formItems.add(new Ext.form.TextField({
labelStyle: 'width:100px',
fieldLabel: item.name,
name: item.dataIndex,
id: 'field-' + item.name
}));
}, this);
form.items = formItems;
this.doLayout(false, true);
form.loadRecord(record);
}
});
gracias, en ese caso, ¿cuál es la forma correcta de eliminar los elementos? Como necesito borrar el formulario primero – Dve
, puede usar los métodos 'remove()' o 'removeAll()' para eliminar componentes del formulario –