定制 Spread RegExpCellType 实现数据校验

本文通过代码描述如何定制 Spread RegExpCellType 实现数据校验

发布于 2012/11/14 00:00

论坛中有很多用户提问关于如何实现前台校验的问题。使用 Spread RegExpCellType 单元格类型可以非常方便的实现前台数据校验。但是,用户使用 Case 是多种多种多样的,有时使用现有的 Case 无法实现某些格式的校验功能。

例如:校验单元格不能为空,如果为空则弹出错误提示,该单元格一直处于编辑状态直到输入格式正确为止。

面对这种情况,我们就需要通过自定义单元格类型类实现数据校验,下面我们分别讲解:
1.继承 RegExpCellType 创建自定义单元格类型:

 
public class CustomCellType : FarPoint.Web.Spread.RegExpCellType

复制代码

2.重载 ValidateEditorValue 方法,定制验证正则。

 
public override string ValidateEditorValue(object value)

        {

            string errorMessage = null;



            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("\\s");

            if (reg.IsMatch(value.ToString()))

            {

                errorMessage = "单元格不能为空";

            }



            return errorMessage;

        }

复制代码

3.重载 EditorClientScriptUrl 方法,链接自定义单元格类型的 js 脚本文件:

 
public override string EditorClientScriptUrl

        {

            get

            {

                return "MyCellType.htc";

            }

        }

复制代码

4.创建 .htc 格式的 js 脚本文件,并填写校验规则:

 
<PUBLIC:COMPONENT>

  <PUBLIC:METHOD NAME="isValid">

  </PUBLIC:METHOD>

</PUBLIC:COMPONENT>



<SCRIPT language="javascript">

    function isValid(val) {

        //替换空格为''

        var result = val.replace(/\s*/g, '');  

        if (result == "") {

            return "单元格不能为空";

        }

        else {

            return "";

        }

    }

</SCRIPT>

复制代码



Demo 下载:VS2010 && Spread for .NET 6 SP3

关于葡萄城

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

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

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

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