我是ExtJ的新手,我正在尝试集成Java API以将记录保存到extJ中,但是会出错。即
Ext.form.Basic.updateRecord():需要记录。请找到我的代码详细信息
onSaveClick: function (button) {
var dialog, record, store;
dialog = button.up('window').down('form');
dialog.updateRecord();
record = dialog.getRecord();
if (record === trac.app.getUser()) {
record.save();
} else {
store = Ext.getStore('Routes');
if (record.phantom) {
store.add(record);
}
store.sync({
failure: function (batch) {
store.rejectChanges();
trac.app.showError(batch.exceptions[0].getError().response);
}
});
}
button.up('window').close();
}
答案 0 :(得分:0)
首先获取记录,然后将其用作dialog.updateRecord的参数:
onSaveClick: function (button) {
var dialog, record, store;
dialog = button.up('window').down('form');
record = dialog.getRecord();
dialog.updateRecord(record);
if (record === trac.app.getUser()) {
record.save();
} else {
store = Ext.getStore('Routes');
if (record.phantom) {
store.add(record);
}
store.sync({
failure: function (batch) {
store.rejectChanges();
trac.app.showError(batch.exceptions[0].getError().response);
}
});
}
button.up('window').close();
}
答案 1 :(得分:0)
只需阅读documentation:
将该格式的值持久存储在beginEdit / endEdit块中传递的Ext.data.Model对象中。如果未指定记录,它将尝试更新(如果存在)提供给loadRecord的记录。
这可能解释了为什么另一个答案没有意义(试图获取记录,该记录很可能从未从商店加载过。很可能甚至没有操作,因为它是同一事物的获取/设置)。该方法的正确应用甚至不是onsave,而是onload。独立于绑定存储,使用Ext.data.Model
填充表单。