RadGrid 批量编辑原始值空白验证异常

RadGrid batch edit original value blank validation exception

提问人:Michael Foster 提问时间:11/8/2023 更新时间:11/8/2023 访问量:35

问:

我有一个使用 BatchEdit 模式的 RadGrid。自动验证工作正常,但我想在异常中编程:字段不允许使用空白值,但数据库中充满了具有现有空白值的记录。如果现有记录已具有空白值,我希望验证接受空白值。

这是我的验证方法。请注意,该属性不存在;这是我试图找到原始值的一部分,但添加它被证明是有问题的。OriginalValue

        function BlankFieldValidator(sender, args) {
            if (args.Value.length == 0) {
                if (sender.getAttribute("OriginalValue").length != 0) {
                    args.IsValid = false;
                }
            }
        }

在调试页面时,我可以检查 和 对象,但我没有看到任何包含原始值的内容。我得出结论,它一定在 Telerik 数据结构的某个地方,因为仍然可以单击以恢复对 RadGrid 的所有更改。senderargsCancel Changes

检索原始值以与编辑后的值进行比较的好方法是什么?

asp.net vb.net Telerik Radgrid

评论

0赞 Shahram Alemzadeh 11/11/2023
事实上,您可以在 edited-value 和 OriginalValue 中使用旧值 (OriginalValue) 或事件获取旧值。但这并不能解决您的问题,因为这些事件会在验证后触发。我认为最好使用模板对插入和更新模式使用两个单独的验证。OnBatchEditCellValueChangedOnBatchEditCellValueChangingget_cellValueget_editorValue
0赞 Michael Foster 11/13/2023
@ShahramAlemzadeh我已经找到了这些方法并检索了原始值和编辑的值。我正在尝试找到一种方法来确保它们始终在没有任何奇怪的 UI 问题的情况下执行。但是使用这种方法意味着我不使用内置验证,这当然是一个选项。我只是认为这是一个笨拙的解决方案,将来可能更难调试。
0赞 Shahram Alemzadeh 11/15/2023
使用内置验证器需要以某种方式检测事件(插入或更新)的 radgrid 状态,然后根据状态禁用(或编辑行为)验证器。我不认为这是可能的(至少很容易)或者是一个简单的过程。这是一个有用的问题,需要更多关注。batcheditopened

答: 暂无答案