excel中添加数据验证后,当数据验证不通过时,可以选择将不合法信息以弹框的形式弹出。如下所示:
将该文件导入在线表格编辑器(设计器),也就是包含工具栏的组件中,数据验证失败时,弹框会正常显示,如下所示:
但是如果将该文件导入SpreadJS运行时中,数据验证失败时,这个弹框就不会再弹出了,这是因为这种弹框在SpreadJS中,属于专门为在线表格编辑器而设计的,而只是使用SpreadJS运行时的时候,是没有内置这些弹框的,并不属于产品bug,是一种设计思想。
但是,当客户使用SpreadJS运行时,依旧想要在数据验证失败时,弹出对应的错误时,是否有其它方案可以实现呢?答案肯定时可以的,因为文件本身数据验证的这些错误提示信息都是能拿到的,我们只需要当用户在目标单元格输入内容时,使用api去判断数据验证是否通过,不通过时,使用alert或者其它模态框将错误信息提示出来即可。详细代码如下:
- sheet.bind(GC.Spread.Sheets.Events.ValueChanged,function(sender,args){
- let {row,col,newValue} = args
- // B11单元格中包含数据验证
- if(row==10&&col==1){
- //判断数据验证是否通过
- let isValid = sheet.isValid(row,col,newValue)
- if(!isValid){
- //数据验证失败时 弹出错误信息
- alert(sheet.getCell(row,col).validator().errorMessage());
- //清空单元格内容
- sheet.setValue(row,col,null)
- }
- }
- })
复制代码 详细实例参考:在线测试-spreadjs数据验证失败弹框
|
|