千家信息网

ASP.NET数据验证控件CustomValidator怎么用

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要为大家展示了"ASP.NET数据验证控件CustomValidator怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"ASP.NET数据验
千家信息网最后更新 2025年11月07日ASP.NET数据验证控件CustomValidator怎么用

这篇文章主要为大家展示了"ASP.NET数据验证控件CustomValidator怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"ASP.NET数据验证控件CustomValidator怎么用"这篇文章吧。

ASP.NET数据验证控件CustomValidator控件概述

简单地使用前面提到的前四个数据验证控件,就可以实现我们一般开发的大部分数据表单的验证要求。然而,有时候我们需要验证一些比较复杂的表单。想像一下,我们有一个比较复杂的调查表,该调查表包含一个有很多单选按钮和多选按钮的表单,一些多选按钮和个人的爱好相对应,比如游泳、体育、阅读等,调查表希望被调查人选择自己的所有爱好。在这些选项下面,提示如下文字:"如果你提示有体育和游泳两种爱好,请选择您什么时候开始学习游泳",在这些文字下方放置一些标识年龄段的单选按钮,这些按钮是否有效取决于我们在前面提到的多选按钮的选择情况。在以上的验证情况中,我们就要使用到CustomValidator数据验证控件。

在所有的ASP.NET数据验证控件中,都有一个"ControlToValidate"的控件属性需要设置,这个属性用来指定表单中需要验证的表单项。在CustomValidator数据验证控件中,需要做以下事情:

1. 读取需要CustomValidator验证的表单项值;

2. 执行验证操作;

3. 决定被验证表单项是否符合验证要求。

在其他内建控件中,以上步骤用户是不知道也不要理睬的,但是,在使用CustomValidator的时候,我们需要自己动手实现以上步骤。为了实现以上步骤,我们需要编写一个服务器端数据验证函数,该函数的样式如下:

Sub FunctionName(sender as Object, args as ServerValidateEventArgs)   ……   End Sub

注意以上函数的args参数,它是FunctionName函数的第二个参数,这个参数有以下两个属性:

1. Value:被验证数据表单的值。

2. IsValid:验证是否通过。如果通过,IsValid的值是True; 如果没有通过,其值为False。

在使用CustomValidator的时候,我们不但要设置"ControlToValidate"属性,我们还必须设置OnServerValidate事件来处理服务器端的数据验证动作。

建立一个简单的ASP.NET数据验证控件CustomValidator

假设现在建立一个与数学有关的网站,在这个网站,我们要求浏览者提供自己喜欢的质数,以此来提高我们网站的访问量。在ASP.NET中,没有一个现成的可以专门验证质数的服务器端数据验证控件,这样,我们就有必要用到CustomValidator控件。

以下例子用来验证用户输入的数是不是质数。在这个表单中,有一个用户输入数据的TextBox控件和一个Button控件,还有用于验证是不是质数的CustomValidator控件,和两个用于保证用户输入为正数的CompareValidator控件。

﹤ script language="vb" runat="server" ﹥  Sub btnSubmit_Click(sender as Object, e as EventArgs)  If Page.IsValid then    Response.Write("﹤ font color=""red""﹥    ﹤ i﹥"& txtPrimeNumber.Text & "is, indeed, a good prime number.    ﹤  /i﹥﹤  /font﹥")  Else  Response.Write("﹤ font color=""red""﹥   ﹤ i﹥" & txtPrimeNumber.Text & "is ﹤ b﹥not﹤ /b﹥    a prime number.﹤ /i﹥﹤ /font﹥")  End If    End Sub    Sub PrimeNumberCheck(sender as Object, args as   ServerValidateEventArgs)  Dim iPrime as Integer = Cint(args.Value),   iLoop as Integer, iSqrt as Integer = CInt(Math.Sqrt(iPrime))  For iLoop = 2 to iSqrt    If iPrime mod iLoop = 0 then  args.IsValid = False  Exit Sub    End If  Next  args.IsValid = True    End Sub  ﹤ /script﹥  ﹤ form method="post" runat="server"﹥    Enter your favorite prime number:  ﹤ asp:textbox id="txtPrimeNumber" runat="server" /﹥  ﹤ %-- 建立CustomValidator 控件 --%﹥    ﹤ asp:CustomValidator runat="server"   id="custPrimeCheck"  ControlToValidate="txtPrimeNumber"  OnServerValidate="PrimeNumberCheck"  ErrorMessage="Invalid Prime Number"/﹥  ﹤ %-- 建立两个CompareValidator控件:***个保证输入为数字;  第二个保证输入为正数 --%﹥    ﹤ asp:CompareValidator runat="server"    id="compPrimeNumber"Operator="DataTypeCheck"    Type="Integer"    Display="Dynamic" ControlToValidate=    "txtPrimeNumber"ErrorMessage =    "You must enter an integer value."/﹥    ﹤ asp:CompareValidator runat="server"     id="compPrimeNumberPositive"Operator="GreaterThan"    Type="Integer"    Display="Dynamic" ValueToCompare="0"    ControlToValidate="txtPrimeNumber"    ErrorMessage ="You must enter a value     greater than zero."/﹥    ﹤ p﹥﹤ asp:button id="btnSubmit" runat=    "server"OnClick="btnSubmit_Click" Text="Submit" /﹥  ﹤ /form﹥

如果对判定质数不是太熟悉,可能对于以上的PrimeNumberCheck事件处理感觉比较迷惑。首先,将用户在txtPrimeNumber输入的数据通过事件的args.value传送给txtPrimeNumber,然后,将用户的输入开平方根,再将用户输入的数字除以从2到刚才算出的平方根之间的每一个数字。如果出现结果为零的情况,说明用户输入的数字不是质数,设置args.isValid为False; 如果全部为零,说明用户输入合法,设置args.isValid为True。

ASP.NET数据验证控件之客户端验证

ASP.NET内建数据验证控件的一大特点就是它们的所有验证都是在客户端进行的,不需经过服务器端,而CustomValidator控件的错误验证完全是通过服务器端实现的。必须意识到的一点是,不管是否通过客户端实现数据验证,服务器端的数据验证是一定会产生的。增加客户端验证的功能,只是让我们的数据验证控件更加友好。

为了实现客户端验证的功能,我们必须使用JavaScript或者VBScript写一个脚本函数,因为VBScript只支持IE浏览器,因此,这里我们采用JavaScript来编写这个函数:

﹤ script language="JavaScript" ﹥  ﹤ !--    function CheckPrime(sender, args)    { var iPrime = parseInt(args.Value);  var iSqrt = parseInt(Math.sqrt(iPrime));  for (var iLoop=2; iLoop﹤ =iSqrt; iLoop++)    if (iPrime % iLoop == 0)     { args.IsValid = false;   return;    }    args.IsValid = true;    }  // --﹥  ﹤ /script ﹥

在这个例子里面,我们输入数字6,然后按"Tab"按钮。在高版本的浏览器里面,我们将看到来自CustomValidator控件的错误信息,这样,我们的CustomValidator控件也就有了客户端验证功能。在以上代码中,可能已经注意到我们并没有定义数据sender和args的类型,因为在脚本语言中,是没有严格的数据类型定义的。

为了实现客户端数据验证,惟一要做的就是在CustomValidator控件定义中加入以下语句:ClientValidationFunction="CheckPrime",这里,其实就是指定自定义验证控件的客户端验证函数。在这个例子里,前面定义的"CheckPrime"函数就是客户端验证函数。

ASP.NET数据验证控件CustomValidator的使用总结

上面我们介绍了ASP.NET中几乎是功能最灵活的数据验证控件CustomValidator的使用,介绍了CustomValidator控件的服务器端验证和客户端验证的实现。尽管在实际的开发工作中,可能我们使用ASP.NET的内置数据验证控件几乎完全可以满足我们的开发要求,但是若能了解CustomValidator控件的使用和特点将会更有利于解决在工作中碰到的数据验证问题。

以上是"ASP.NET数据验证控件CustomValidator怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

验证 控件 数据 输入 客户 客户端 函数 用户 按钮 服务器 服务 表单 质数 数字 功能 就是 属性 调查 两个 事件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 比较各种软件开发模型特点 银行网络安全宣传总结下一步 量化积分管理软件开发系统 网络安全知识竞赛答题入口黑龙江 隆多 nba数据库 服务器的管理地址是什么 数据库建表怎么添加外键 软件开发价格聚顶科技专业 惠州2011服务器散热器生产商 软件开发的后台 hax.co.id服务器 饥荒服务器怎么租 小型聊天软件开发项目概述 工信部高级软件开发工程师 怎样远程管理香港服务器 小学网络安全视频活动方案 网络安全海报2020 同一个网段两个dhcp服务器 网络安全 都做哪些工作 中国地图版网络技术应用 m3u8 服务器禁止访问此文件 新华互联网教育科技有限公司 服务器插上硬盘显示未连接 在校大学生软件开发 宜昌哪里有软件开发公司 泰拉瑞亚手游服务器招聘 网络安全测试题免费下载 软考网络安全工程师历年试题 松江区品牌软件开发销售方法 tcl 工资 软件开发
0