我有一个绑定到表单的网格,表单提交操作是更新已加载的记录(如果有)并添加新记录(如果它是空白表单).但如果我先选择一条记录然后再打电话
myGrid.getSelectionModel().deselectAll();
myform.getForm().reset();
Run Code Online (Sandbox Code Playgroud)
清除表单,以便我可以添加新记录,它会覆盖以前选择的记录并进行更新.
record = myform.getRecord();
if(record){
record.set(values);
}
Run Code Online (Sandbox Code Playgroud)
不应该myform.getRecord(); 重置后为空?如何清除记录选择?
简而言之,不,不应该,并且在第一次通过 加载任何内容后,您没有合法的方法来清除记录loadRecord。
虽然,你仍然可以进行myform.getForm()._record = null赋值,但我强烈反对这样做,因为它可能会破坏 ExtJS 的一些内部功能。
以下是 ExtJS API的摘录:
getRecord() : Ext.data.Model
返回通过 loadRecord 加载的最后一个 Ext.data.Model 实例
它正是这样做的,返回通过 加载的最后一条记录loadRecord。
以下是一些来源:
getRecord: function() {
return this._record;
},
loadRecord: function(record) {
this._record = record;
return this.setValues(record.data);
},
Run Code Online (Sandbox Code Playgroud)
实际上,这些是处理字段的唯一方法Ext.form.Basic(由 返回的实例) 。getForm()this._record
至于重置
reset: function() {
var me = this;
me.batchLayouts(function() {
me.getFields().each(function(f) {
f.reset();
});
});
return me;
},
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,重置与返回的记录无关getRecord(),它只是重置字段值。
| 归档时间: |
|
| 查看次数: |
19133 次 |
| 最近记录: |