ExtJS 2.x 重复数据的网格单元验证

Posted

技术标签:

【中文标题】ExtJS 2.x 重复数据的网格单元验证【英文标题】:ExtJS 2.x Grid Cell Validation for Duplicate Data 【发布时间】:2013-01-07 12:12:06 【问题描述】:

我有 ExtJS 网格,其中有名为“手机号码”的列。 我在这里做了简单的事情当我编辑超过2行并且如果我修改“手机号码”列它将检查它是否存在于网格中。

如果发现重复号码,我会提示输入的手机号码已经存在,并且 重新加载整个网格,这样所有编辑的数据都将消失。

但是,我希望不重复的数据被编辑回来。

那么,我怎样才能在重新加载整个网格后保持我的非重复数据不变。

我只想删除发现重复的重复行,其他已编辑的行保持原样。

我可以使用这个 RowEditor 插件来兼容 ExtJS 2.x。

http://dev.sencha.com/deploy/ext-3.4.0/examples/grid/row-editor.html

我的邮箱:ashwin.parmar2020@gmail.com

【问题讨论】:

【参考方案1】:

要查找重复数据,请在该事件上使用Ext.grid.EditorGridPanelafteredit 事件,您将获得当前记录,因此只需显示消息并在该字段中添加空值

【讨论】:

【参考方案2】:

您应该为检测重复号码并拒绝重复号码的手机号码字段使用validator。所以你不必重新加载网格。

如果您仍然想重新加载网格,您可以先获取dirty 行,然后再存储/重新应用它们。

要获取脏记录,您可以使用网格存储的getModifiedRecords() 函数。使用商店的commitChangesfunction 在验证/处理后应用它们。

【讨论】:

您能否举例说明如何获取脏行并在重新加载网格后重新应用,以便重新加载后非重复行保持在网格中,直到我提交网格数据。 我编辑了我的答案。我建议您在重新加载之前存储脏记录或找到不需要重新加载的方法。

以上是关于ExtJS 2.x 重复数据的网格单元验证的主要内容,如果未能解决你的问题,请参考以下文章

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

在 ExtJs 4 网格中强制执行唯一键值

在 Extjs 网格视图中隐藏行不起作用

Extjs 现代网格列单元格工具条件 iconCls

在激活 extjs 4 时清除可编辑的网格单元

ExtJS4 网格不会更新远程数据库