SpreadJS数据验证

SpreadJS提供了丰富的数据验证,让我们看看他能做什么吧

发布于 2016/05/27 00:00

SpreadJS 提供了以下六种数据验证方式,通过设置验证器可以阻止用户的无效输入。

  • createNumberValidator:创建基于数字的验证器。
  • createDateValidator:创建基于数据的验证器。
  • createTextLengthValidator: 创建基于文本长度的验证器。
  • createFormulaValidator: 创建基于公式的验证器。
  • createFormulaListValidator: 创建基于公式列表的验证器。
  • createListValidator: 创建基于列表的验证器。

数据验证基本应用自定义数据验证两个示例中我们可以看到SpreadJS数据验证的强大功能。接下来我们看看在数据提交前如何验证用户是否所有输入都是合法的。

判断Value是否能通过一个单元格的验证器,需要使用sheet的isValid方法。比如

activeSheet.isValid(0, 0, 10)。

有了这个方法我们就可以验证所有单元格的内容是否都通过了自己的验证器。

        function isSheetValid(sheet){
            var rowCount = sheet.getRowCount(), 
                colCount = sheet.getColumnCount();
            var isValid = true;
            for(var row = 0; row < rowCount; row++){
                for(var col = 0; col < colCount; col++){
                    if(!sheet.isValid(row, col, sheet.getValue(row, col))){
                        isValid = false;
                        break;
                    }
                }
            }
            return isValid;
        }

 

每个cell都遍历一般看起来性能有点低,如果当初始化后页面sheet是有内容的,并且数据默认都是通过验证的。那么这时我们只需要获取到被用户改动过的单元格去验证下是否通过验证就可以了。

        function isSheetValidNew(sheet){
            var rowCount = sheet.getRowCount(), 
                colCount = sheet.getColumnCount();
            var isValid = true;
            var cells  = sheet.getDirtyCells();
            for(var i=0; i < cells.length; i++){
                var dirtyCell = cells[i];
                var row = dirtyCell.row, col = dirtyCell.col;
                if(!sheet.isValid(row, col, sheet.getValue(row, col))){
                    isValid = false;
                    break;
                }
            }
            return isValid;
        }

 

通过isValid方法的验证,用户表单输入的验证流程就完整了,一切在前端搞定。

 

更多资源

SpreadJS中文学习指南:http://demo.grapecity.com.cn/SpreadJS/TutorialSample/#/samples

SpreadJS在线英文产品文档:http://sphelp.grapecity.com/webhelp/SpreadJSWeb/webframe.html#welcome.html

如果您对SpreadJS产品感兴趣,可以到官方网站下载试用:/developer/spreadjs

如果你有疑问,可以到GCDN论坛获得技术支持:http://gcdn.grapecity.com.cn

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态