如何利用Spread中的自定义CellType来验证客户端数据

原创|其它|编辑:郝浩|2011-12-26 23:45:12.000|阅读 675 次

概述:在使用Spread .NET 时,我们经常会遇到这样的Case,既要对客户端输入的数据进行有效性验证,又要对原有数据进行格式化显示,我们可以使用RegExpCellType类型来完成客户端的数据有效性验证。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  在使用Spread .NET 时,我们经常会遇到这样的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;
}


(慧都控件网版权所有,转载请注明出处,否则追究法律责任)
标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP