找回密码
 立即注册

QQ登录

只需一步,快速开始

Winny

超级版主

141

主题

261

帖子

1682

积分

超级版主

Rank: 8Rank: 8

积分
1682
Winny
超级版主   /  发表于:2022-5-20 21:03  /   查看:1885  /  回复:0
excel中添加数据验证后,当数据验证不通过时,可以选择将不合法信息以弹框的形式弹出。如下所示: image.png266231383.png
将该文件导入在线表格编辑器(设计器),也就是包含工具栏的组件中,数据验证失败时,弹框会正常显示,如下所示:
image.png578959960.png
但是如果将该文件导入SpreadJS运行时中,数据验证失败时,这个弹框就不会再弹出了,这是因为这种弹框在SpreadJS中,属于专门为在线表格编辑器而设计的,而只是使用SpreadJS运行时的时候,是没有内置这些弹框的,并不属于产品bug,是一种设计思想。


但是,当客户使用SpreadJS运行时,依旧想要在数据验证失败时,弹出对应的错误时,是否有其它方案可以实现呢?答案肯定时可以的,因为文件本身数据验证的这些错误提示信息都是能拿到的,我们只需要当用户在目标单元格输入内容时,使用api去判断数据验证是否通过,不通过时,使用alert或者其它模态框将错误信息提示出来即可。详细代码如下:
  1. sheet.bind(GC.Spread.Sheets.Events.ValueChanged,function(sender,args){
  2.     let {row,col,newValue} = args
  3.     // B11单元格中包含数据验证
  4.     if(row==10&&col==1){
  5.         //判断数据验证是否通过
  6.         let isValid = sheet.isValid(row,col,newValue)
  7.         if(!isValid){
  8.             //数据验证失败时 弹出错误信息
  9.           alert(sheet.getCell(row,col).validator().errorMessage());
  10.           //清空单元格内容
  11.           sheet.setValue(row,col,null)
  12.         }
  13.     }
  14. })
复制代码
详细实例参考:在线测试-spreadjs数据验证失败弹框

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部