gpt4 book ai didi

extjs 4 表单在 form.reset() 之后仍有记录集;

转载 作者:行者123 更新时间:2023-12-04 17:26:49 27 4
gpt4 key购买 nike

我有一个绑定(bind)到表单的网格,表单提交操作是更新加载的记录(如果有),如果它是空白表单,则添加新记录。但是如果我先选择一条记录然后调用

myGrid.getSelectionModel().deselectAll();
myform.getForm().reset();

清除表单,以便我可以添加一条新记录,它会用更新覆盖先前选择的记录。
record = myform.getRecord();
if(record){
record.set(values);
}

不应该 myform.getRecord();重置后为空?如何清除记录选择?

最佳答案

简而言之,不,它不应该,而且在您第一次通过 loadRecord 加载任何内容后,您没有合法的方法来清除记录。 .
虽然,你仍然可以做 myform.getForm()._record = null分配,我强烈反对,因为它可能会破坏 ExtJS 的一些内部功能。

这是 ExtJS API 的摘录:

getRecord() : Ext.data.Model
Returns the last Ext.data.Model instance that was loaded via loadRecord



它正是这样做的,返回通过 loadRecord 加载的最后一条记录.

以下是一些来源:
getRecord: function() {
return this._record;
},

loadRecord: function(record) {
this._record = record;
return this.setValues(record.data);
},

实际上,这些是 Ext.form.Basic 的唯一方法。 (由 getForm() 返回的一个实例)处理 this._record field 。

至于重置
reset: function() {
var me = this;
me.batchLayouts(function() {
me.getFields().each(function(f) {
f.reset();
});
});
return me;
},

如您所见,reset 与 getRecord() 返回的记录无关,它只是重置字段值。

关于extjs 4 表单在 form.reset() 之后仍有记录集;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7748929/

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