我在存储表单时遇到了问题。该表单会加载一条用于编辑现有记录的记录,或者对于新记录而言为空白。编辑现有的记录工作正常。创建一个新的也很好。如果我想编辑&更新新创建的记录而不关闭并重新打开表单,则会出现问题。ExtJS在表单中更新商店中新创建的记录时出现的4个问题 - loadRecord updateRecord
我想问题是商店内的记录的id是通过远程服务器分配的。该表格持有该模型的副本,并没有注意到变化的ID。
任何想法如何保持窗体和商店同步?
下面的代码被用于保存:
var basicForm = this.up('form').getForm(),
record = basicForm.getRecord();
if (basicForm.isValid()) {
if (!record) {
record = Ext.data.StoreManager.lookup('theModel').add(this.up('form').getForm().getFieldValues())[0];
basicForm.loadRecord(record);
} else {
basicForm.updateRecord(record);
}
}
您可以在商店中为写入事件添加侦听器,并更新您在表单中存在的实例的记录ID。 – VoidMain
嘿VoidMain,我也想过。 ... var record = new app.model.newModel(basicForm.getFieldValues()); record.save({ success:function(){console.log(this)} }); ... 不幸的是,我仍然得到旧记录不是新的更新记录与分配编号 – Manuel
但thx的提示,你知道如何实现它吗? – Manuel