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.EditorGridPanel
的afteredit
事件,您将获得当前记录,因此只需显示消息并在该字段中添加空值
【讨论】:
【参考方案2】:您应该为检测重复号码并拒绝重复号码的手机号码字段使用validator
。所以你不必重新加载网格。
如果您仍然想重新加载网格,您可以先获取dirty
行,然后再存储/重新应用它们。
要获取脏记录,您可以使用网格存储的getModifiedRecords()
函数。使用商店的commitChanges
function 在验证/处理后应用它们。
【讨论】:
您能否举例说明如何获取脏行并在重新加载网格后重新应用,以便重新加载后非重复行保持在网格中,直到我提交网格数据。 我编辑了我的答案。我建议您在重新加载之前存储脏记录或找到不需要重新加载的方法。以上是关于ExtJS 2.x 重复数据的网格单元验证的主要内容,如果未能解决你的问题,请参考以下文章