我有一个form.Panel,其中我显示了一些数据。我从服务器接收XML数据,并使用
将其直接加载到字段中podform.getForm().load({url:url_servlet+'kadastr_zemform.jsp' ...
以及XMLReader。
现在我想以3个单独的形式显示数据。面板。但是我只是想在将数据加载到面板之前加载一次数据。我想在这种情况下,form.load()不再适用于我。
如何将数据加载到多个面板中?我应该使用商店吗?我还需要能够编辑数据并将其发回去吗?
答案 0 :(得分:0)
您可以使用一个包含3个子面板的主表单面板,其中包含您需要的字段。然后,如果在窗体上调用load(),如果它们位于不同的子面板中,则字段也将被初始化(因为元素包含在主窗体中):
Ext.create('Ext.form.Panel',{
layout: 'vbox',
items: [
{itemId: 'panel1', xtype: 'panel', layout: 'form', items: [{xtype: 'textfield', name: 'text1'}
]},
{itemId: 'panel2', xtype: 'panel', layout: 'form', items: [{xtype: 'textfield', name: 'text2'},
{itemId: 'panel3', xtype: 'panel', layout: 'form', items: [{xtype: 'textfield', name: 'text3'}]
});
否则,如果您只能管理一个带子面板的表单面板,则应考虑直接管理Ajax调用(使用Ext.Ajax.request),然后使用生成的对象初始化每个表单。
答案 1 :(得分:0)
我找到两个带商店的解决方案。
var store = new Ext.data.Store({
url: url_servlet+"kadastr_zemform.jsp",
reader: new Ext.data.XmlReader({
totalProperty: "results",
record: "contact",
fields: [
]})
});
store.load();
您可以使用
podform.getForm().setValues(store.getRange(0)[0].data);
或者这个:
var record = store.getAt(0);
podform.getForm().loadRecord(record);
这个答案来自sencha论坛。 http://www.sencha.com/forum/showthread.php?248760-How-to-load-data-from-store-to-FormPanel&p=912235#post912235