GXT编辑网格验证

时间:2014-05-20 14:52:17

标签: validation gwt gxt editing

我最近开始使用GXT 3.0.1并且我正在尝试编辑一个网格,其中输入到每列的值会影响其他列,并且必须验证数据。我已经尝试过GridInlineEditing和GridRowEditing,但每个都会导致问题。

我需要根据单元格的值来计算值。因此,假设我更新了单元格A,然后单元格B应该更新以反映此值。类似地,对于编辑单元格B,则单元格A应该更新。除此之外,我还需要在提交之前验证我的更改。

GridInlineEditing - 每次按Tab键时都会触发CompleteEditEvent,我可以根据存储前一个值并查看Store.Record.getChange来确定哪些值已更改,这样就可以了。但是,验证在3.0.1中不起作用(参见:http://www.sencha.com/forum/showthread.php?255907-Validation-in-GridInlineEditing),我无法升级,所以我在这里遇到了死胡同。

GridRowEditing - CompleteEditEvent仅在整行更新后触发,因此现在验证有效,但是,由于事件触发一次,我无法在列A更新后计算B列。

有没有人遇到同样的问题并找到了解决方案?

非常感谢adavnce。

斯蒂芬

1 个答案:

答案 0 :(得分:0)

  

我最近开始使用GXT 3.0.1

GXT 3.0.1在一年半前发布,两周前3.1.0熄灭 - 尝试转向GXT 3.1.0。除了许多错误修复,行和内联编辑现在都支持字段验证。如果无法升级到3.1.0,则会在3.0.5或6中添加这些更改,看看是否可以至少升级到那么远。知道为什么你无法升级到任何一个版本将更容易提出其他建议 - 如果你依赖于作为另一个bug的一部分修复的行为,它可能会让你自相矛盾希望错误修正,但不是所有错误修复。

如果所有其他方法都失败了,或许可以考虑扩展您正在使用的网格编辑,请考虑覆盖completeEditingdoCompleteEditing以直接修改行为,方法是复制较新版本的代码,或者通过您自己的工具提示或提醒来模拟验证行为,而不是完成“完成”操作。码。