找回密码
 立即注册

QQ登录

只需一步,快速开始

greatchn
金牌服务用户   /  发表于:2019-1-7 14:09  /   查看:4004  /  回复:3
您好,我们这有个需求是对单元格添加校验,在最后保存的时候进行拦截,不往后台发送请求。我的想法是检验失败的时候把错误坐标和sheet等信息放到一个变量里,校验通过的时候从这个变量里删除对应的信息。最后保存的时候,处理这个变量,有错误就不发送请求。但是我在文档中只看到了 ValidationError 方法,没有找到校验通过的方法,请问有无该方法,或者有其他的解决方案?

3 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-1-7 14:41:47
沙发
您好,ValidationError 是个事件,当页面上出现非法输入时可以触发,

我把应用代码贴出来:


  1. var spread = GC.Spread.Sheets.findControl("ss");
  2. var sheet = spread.getActiveSheet();

  3. sheet.bind(GC.Spread.Sheets.Events.ValidationError, function(e, args) {
  4.    console.log(args);
  5.    // 判断是否展示错误信息
  6.    if (args.validator.showErrorMessage()) {
  7.         // 选择框,选确定后重新输入,选取消可以强制执行
  8.         if (confirm(args.validator.errorMessage())) {
  9.             args.validationResult = GC.Spread.Sheets.DataValidation.DataValidationResult.retry;
  10.         } else {
  11.             args.validationResult = GC.Spread.Sheets.DataValidation.DataValidationResult.forceApply;
  12.         }
  13.     }
  14. });
复制代码


另外,关于DataValidationResult,也就是事件被触发后的行为,您可以参考API:

http://help.grapecity.com/spread ... lidationResult.html
回复 使用道具 举报
greatchn
金牌服务用户   /  发表于:2019-1-7 15:02:43
板凳
您好,在用户输入错误后,可以按照您提供的上述方法进行错误收集,然后再进行相关提示。
但是如果用户针对此错误进行修改并通过校验后,我应该如何从错误收集的结果中将此单元格移除?
有没有单元格校验成功的事件,或者获取整个sheet校验结果的方法?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-1-7 17:29:42
地板
您好,没有验证成功的事件,但是我会给您提供一个按钮提交时进行数据验证的示例。

示例见附件,您可以下载来运行和参考代码。

SubmitDataValidator.html

3.97 KB, 下载次数: 141

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部