extjs 可编辑网格 - 清除修改记录列表

Posted

技术标签:

【中文标题】extjs 可编辑网格 - 清除修改记录列表【英文标题】:extjs editable grid - clear modified records list 【发布时间】:2011-03-31 16:28:09 【问题描述】:

嗨 我有一个可编辑的网格。一些函数修改网格中的记录。更改字段值时,会触发 onupdate 事件。 update 时执行的函数获取修改后的记录并检查修改了哪个字段:

if (record.isModified('field1')) ...
else if (record.isModified('field2')) ...

问题在于“isModified()”会检查上次加载网格后修改的所有字段。有没有办法清除列表或只获取最后修改的字段?

【问题讨论】:

【参考方案1】:

你看过RecordgetChanges()方法吗?它返回以下内容(来自ExtJS API documentation 的引用):

仅获取符合以下条件的字段的哈希值 自此记录以来已被修改 已创建或提交。

另一个选项是modified 属性,它返回以下内容:

这个对象包含一个键和值 存储所有的原始值 修改的字段,如果没有,则为 null 字段已被修改。

【讨论】:

这是问题所在:所有这些都是从商店加载或创建记录返回修改后的记录/字段。在我的情况下,网格没有连接到数据库,所以我需要知道最后修改的字段是什么 好的。那么在每次更改后调用Record.commit() 怎么样?调用 commit 重置记录的修改属性。这样,在每次更新时,上述方法只会返回最后一次修改。 另请注意,调用commit() 将触发另一个update 事件,但operation 值不同(COMMIT 而不是EDIT)。检查operation,如果是COMMIT,则什么也不做。

以上是关于extjs 可编辑网格 - 清除修改记录列表的主要内容,如果未能解决你的问题,请参考以下文章

获取选定行的 ExtJS4 可编辑网格返回空

Extjs可编辑的网格推开行

如何在 extjs 网格(单元格编辑)中将完整列显示为可编辑?

如何验证 Extjs 可编辑网格单元

ExtJs 属性网格 - 选定的行可编辑?

可编辑的网格 ExtJS,如何在网格上编辑行后更新数据库中的行