【问题标题】:GXT editing grid validationGXT 编辑网格验证
【发布时间】:2014-05-20 14:52:16
【问题描述】:

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

我需要根据单元格的值计算值。所以假设我更新了单元格 A,那么单元格 B 应该更新以反映这个值。同样对于编辑单元格 B,单元格 A 应该更新。除此之外,我还需要在提交之前验证我的更改。

GridInlineEditing - 每次按下选项卡时都会触发 CompleteEditEvent,我可以根据存储先前的值并查看 Store.Record.getChange 来计算出哪些值发生了变化,所以这是可行的。但是,验证在 3.0.1 中根本不起作用(请参阅:http://www.sencha.com/forum/showthread.php?255907-Validation-in-GridInlineEditing)并且我无法升级,所以我在这里遇到了死胡同。

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

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

非常感谢您。

斯蒂芬

【问题讨论】:

    标签: validation gwt gxt editing


    【解决方案1】:

    我最近开始使用 GXT 3.0.1

    GXT 3.0.1 于一年半前发布,两周前 3.1.0 发布 - 尝试迁移到 GXT 3.1.0。除了许多错误修复之外,行和内联编辑现在都支持字段验证。如果您无法升级到 3.1.0,这些更改是在 3.0.5 或 6 中添加的,看看您是否可以至少升级到那么远。了解为什么您无法升级到任何一个版本将更容易提出其他建议 - 如果您依赖作为另一个错误的一部分而修复的行为,它可能会使您想要的自相矛盾错误修复,但并非所有错误修复。

    如果一切都失败了,也许考虑扩展您正在使用的网格编辑,考虑覆盖 completeEditingdoCompleteEditing 以直接修改行为,或者通过从较新版本复制代码,或者通过模拟验证行为通过您自己的工具提示或警报,而不是完成“完整”代码。

    【讨论】:

    • 谢谢科林。我已经设法通过修改我的 CompleteEditEvent 事件处理程序代码并检查更改是否不为空,但 change.getValue() 为空然后弹出一个对话框说 - 值无效,从而解决了问题。不幸的是,升级不是一种选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 2014-03-08
    相关资源
    最近更新 更多