6
我想從數據存儲記錄動態填充一個ExtJs窗體面板。 當用戶點擊GridPanel中的一行時,將調用buildForm方法,並將點擊的記錄作爲第一個arg傳入。ExtJs從數據存儲記錄動態構建一個窗體
下面的代碼(當調試時)似乎正在工作,但doLayout方法沒有效果。
任何人都可以指向正確的方向嗎?
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);
}
});
感謝,在這種情況下,什麼是去除項目的正確方法是什麼?由於我需要首先清除表單 – Dve 2011-05-04 10:08:18
,您可以使用remove()或removeAll()方法從表單中刪除組件 – 2011-05-04 10:11:38