You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RadGrid批量编辑模式下空白值验证的原数值获取方法咨询

RadGrid批量编辑模式下实现空白字段验证的例外规则

要实现“原有空白记录编辑后仍保持空白时允许通过验证,非空白记录编辑为空白时阻止”的逻辑,你可以通过RadGrid的客户端BatchEditManager获取单元格的原始值,具体实现如下:

自定义验证函数修改

替换你原有的验证函数为以下代码:

function BlankFieldValidator(sender, args) {
    // 获取RadGrid客户端实例(替换为你的RadGrid控件ID)
    var radGrid = $find("<%= RadGrid1.ClientID %>");
    var batchEditManager = radGrid.get_batchEditingManager();
    // 获取当前验证的单元格
    var currentCell = args.get_cell();
    
    // 获取当前行索引和列的UniqueName
    var rowIndex = batchEditManager.get_rowIndex(currentCell);
    var columnUniqueName = currentCell.getAttribute("data-uniqueName");
    
    // 获取该单元格的原始数据库值
    var originalValue = batchEditManager.getCellValue(rowIndex, columnUniqueName);
    
    // 验证逻辑:编辑后为空时,仅当原始值也为空才通过验证
    if (args.Value.trim().length === 0) {
        args.IsValid = (originalValue.trim().length === 0);
    } else {
        args.IsValid = true;
    }
}

关键说明

  • get_batchEditingManager():RadGrid批量编辑模式的核心客户端管理对象,负责维护所有单元格的原始值和修改后的值
  • get_rowIndex(currentCell):通过当前单元格定位到所在行的索引
  • data-uniqueName:RadGrid自动为每个单元格渲染的属性,对应列的UniqueName属性(需确保你的列已设置该属性)
  • getCellValue(rowIndex, columnUniqueName):直接获取指定单元格未修改前的原始值,这就是你需要的“数据库原有值”

注意事项

  • 确保RadGrid的客户端ID能正确获取,若使用ClientIDMode="Static",直接写控件的静态ID即可
  • 列必须配置UniqueName属性,否则data-uniqueName无法获取,导致原始值获取失败
  • 代码中使用trim()处理值,避免空格被误判为非空内容

内容的提问来源于stack exchange,提问作者Michael Foster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 15:32:20