SpreadJS数据验证

发布时间:2016/05/27 00:05 发布者:dexteryao

返回博客中心

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


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网