gpt4 book ai didi

forms - ExtJs 从数据存储记录动态构建表单面板

转载 作者:行者123 更新时间:2023-12-02 23:27:31 25 4
gpt4 key购买 nike

我正在尝试从数据存储记录动态填充 ExtJs FormPanel。当用户单击 GridPanel 中的一行时,将调用 buildForm 方法,并将单击的记录作为第一个参数传递进来。

下面的代码(调试时)似乎可以工作,但 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);
}
});

最佳答案

向表单添加组件的正确方法是使用 add() 方法。如果您的表单已呈现,请使用 add() 方法,然后调用 doLayout()

所以你可能想尝试一下:

form.add(formItems);
form.doLayout(false,true);
form.loadRecord(record);

关于forms - ExtJs 从数据存储记录动态构建表单面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5881593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com