使用自定义CellType来对用户输入数据进行校验与格式化显示

本文通过代码讲述如何使用自定义CellType来对用户输入数据进行校验与格式化显示

发布于 2012/11/14 00:00

SpreadJS

在使用Spread for Asp.NET 5.0 时,我们经常会遇到这样的Case,既要对客户端输入的数据进行有效性验证,又要对原有数据进行格式化显示。

我们可以使用RegExpCellType类型来完成客户端的数据有效性验证;使用DoubleCellType类型来设置我们需要的数据显示样式,可是,我们不能兼得二者的优点。这样我们就不得不扩展CellType来实现这一需求。

下面通过扩展DoubleCellType类来讲解如何创建多功能的自定义CellType类型:

第一步:创建自定义的CellType类型 MyDoubleCellType

 
[Serializable()]

    public class MyDoubleCellType : DoubleCellType

    {

        public override string ValidateEditorValue(object val)

        {

            string reason = null;

            if (val != null && val.ToString().Length > 0)

            {

                System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"^-?(0\.\d{2}|[1-9]\d*\.\d{2})$");

                if (!reg.IsMatch(val.ToString()))

                {

                    reason = "请输入规范数据!(例:12.34)";

                }

            }

            return reason;

        }



        public override string EditorClientScriptUrl

        {

            get

            {

                //指定我们自己的数据验证脚本

                return "MyDoubleEditor.htc";

            }

        }

    }

复制代码

第二步:创建自己的数据验证逻辑 MyDoubleEditor.htc

 
<PUBLIC:COMPONENT>

  <PUBLIC:METHOD NAME="isValid">

  </PUBLIC:METHOD>

</PUBLIC:COMPONENT>



<SCRIPT language="javascript">

    function isValid(val) {

            if (val != null) {

                var patt1 = new RegExp("^-?(0\\.\\d{2}|[1-9]\\d*\\.\\d{2})$");                

                var result = patt1.test(val);

                if (!result) {

                    return "请输入规范数据!(例:12.34)";

                }

        }

        return "";

    }

</SCRIPT>

复制代码

第三步:使用MyDoubleCellType

 
protected void Page_Load(object sender, EventArgs e)

        {

            //设置第一列的Cell为用户自定义的MyDoubleCellType类型

            MyDoubleCellType myDct = new MyDoubleCellType();

            myDct.DecimalDigits = 2;

            myDct.FixedPoint = true;

            FpSpread1.Columns[0].CellType = myDct;

        }

复制代码

开发环境:VS2010 + Srpead for Asp.NET V5.0.3524.2008
源码下载:

SpreadJS | 下载试用

纯前端表格控件SpreadJS,兼容 450 种以上的 Excel 公式,具备“高性能、跨平台、与 Excel 高度兼容”的产品特性,备受华为、苏宁易购、天弘基金等行业龙头企业的青睐,并被中国软件行业协会认定为“中国优秀软件产品”。SpreadJS 可为用户提供类 Excel 的功能,满足表格文档协同编辑、 数据填报、 类 Excel 报表设计等业务场景需求,极大的降低企业研发成本和项目交付风险。

如下资源列表,可以为您评估产品提供帮助:

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

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

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