快速业务通道

服务端数据校验及客户端js脚本验证集成处理初探

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
以直接调用,如果直接调用,在这 里它的验证结果将不能被vc容监控到!

所以要特别注意。

Validator<int>.Init(MyRequest.GetInt("monthTextBox",0))

这小段代码是为MyRequest.GetInt(“monthTextBox",0)这个整数做一个校验,这个地方这个方法是另 一个组件里的,大家应该看得明白,用

来获取客户端的一个提交值的,如果不为整数的话,默认为0,这个地方有点多余,因为验证器里本来 就有一个针对整数的验证了,这个我们就先不

管它了,反正我这个组件的思路是不相干的!

后面调用的Integer、Range 等方法就不多做解释了,它们只是一个验证方法而已,关键 RegClientValidator方法,这个方法有三个重载版本。

RegClientValidator(string elementName);这个表示为html页面中id或是name为elementName的 html控件添加js验证的脚本代码,(注:这一步其实只做了一个脚本代码的生成,并没有输出。)

RegClientValidator(string elementName,string tipString);这个重载表示,为页面控件添加验证 ,并在输入时添加提示信息,提示信息的位置现在是

默认的,在控件的上方(具体效果如图,我会在以后的代码更新中会加入一个可以自定义显示的位置 ,给用灵活的配置或是使用如图的默认)

如果不使用这个重载,自然没有这个提示信息了!

然后讲第三个重载:RegClientValidator(string elementName,string tipString,string errspanName)

这个重载前两上参数都讲过了,第三个参数其实是控制是否在自定义的html元素里面显示错误提示信 息

我代码中"monthErrorSpan"其实就是图上红色的那块区域的html元素的id,这样如果验证不通过,信息 将在红色区域中显示,如果没有使用这个重载,

我们会自动生成一个div来显示,效果如下图:

注:这个错误提示的内容就是在cs文件里面写的那些字符串,在哪一下的验证中不通过,就会显示相 应的错误提示!

接下来看:Retrurn(T tValue);

这个方法其实就是用来返回值的,意思就是如果验证通过返回用户提交的数据给接收变量,如果不通 过将Retrun(T tValue)中定义的值赋给接收变量,这个应该比较好理解,如果你没有定义接收变量,这个 方法也可以省略~

然后再看这两个方法

.SetGroupName("A")
.IsRequired(false)//设置其为非必填项

上面那个SetGroupName("A")表示把该验证添加到A组中,其实这个地方我要声明的是,一般90%甚至更 多的页面的验证是不需要分组的,当然这个也用不着,我在这个地方只是为以演示这个分组功能才加上去 的,分组验证的情况,有用过的朋友,估计会明白,我这个地方就不多说了,不需要分组的就不用调用这 个方法咯!

下面这个IsRequired(false)这个字面上应该也很好理解,就是设置成非必填项,当然如果用户输入了 的话,还是会有验证的!

好了,上面对该解释的都解释了,现在看最后的几代码:

//注册客户端代码到页面中,这里必须要声明运行于服务端的Header或是Form才能进行注册
vc.RenderClinetValidator();

//判断验证是否通过
if (isStartCheck)
{
  if (vc.IsAllPass)
  {
     //你页面要做的逻辑
  }
}

vc.RenderClientValidator();这个方法做的工作是客户端验证生成的最后一步,它负责把容器里所有 的客户端验证代码生成后写入到html代码中~!

有多关键,不用我说了吧!

下面vc.IsAllPass这个也不用说了,就是容器里的验证是否都通过了!

差不多了,剩下的代码就是前端的调用,这个地方有些不合理,我估计在下一个更新中会处理掉!

<input type="button" id="" value="统一验证" onclick="<%=vc.Checked("A")%>" />

客户端的代码生成后,在什么

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号