您的位置:首页技术开发.Net 专栏 → ASP.NET中使用自定义验证控件

ASP.NET中使用自定义验证控件

时间:2009/5/29 11:29:00来源:本站整理作者:我要评论(0)

ASP.NET中使用自定义验证控件

asp.net 1.1中,有不少验证控件,大大方便了我们,但有的时候,当需要做特殊的验证时,还会觉得不够用的,于是我们可以用自定义验证控件CustomValidator,要使用这个控件,必须在服务端写相应的事件,格式如下:
 


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

  其中注意两个参数 value:指示当前的CustomValidator验证的是哪一个控件 IsValid:为真时,表示页面控件已经通过验证。举一个验证页面中文本框的输入是否为素数的例子:


 
<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" />

  <%-- Create the CustomValidator control --%>
  <asp:CustomValidator runat="server" id="custPrimeCheck"
  ControlToValidate="txtPrimeNumber"
  OnServerValidate="PrimeNumberCheck"
  ErrorMessage="Invalid Prime Number" />

  <%-- Create two CompareValidator controls: the first ensures that
  the number entered by the user is an Integer; the second
  makes sure it is positive. --%>
  <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>
 


  可以看到,在验证控件中,   OnServerValidate="PrimeNumberCheck"中,要定义具体的onservervalidate事件,之后,在具体的事件处理过程中,一定要返回args.isvalid的值,以价讲明是否验证成功;当然,最后要用page.isvalid属性来进行全面验证。

 

相关视频

    没有数据

相关阅读 ie6下面asp.net mvc3 部署应用程序在asp.net mvc中实现右键菜单和简单的分页教程ASP.NET中MVC框架模式方法如何实现分享ASP.NET 2.0 中保护机密数据ASP.NET配置文件Web.configASP.NET 2.0 AJAX中Webservice调用方法ASP.NET 的安全认证实现ASP.NET生成随机密码功能

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 什么是.NET中的TDD?ASP.NET AJAX入门简介 WebMatrix入门教程VC++2008中如何调用GetOpenFileName打开文件PlaySound函数在VC++6.0中如何播放音乐及声请问VC++回调函数怎么用

人气排行 嵌入式实时操作系统VxWorks入门教程ArrayList 与 string、string[] 的转换C#遍历整个文件夹及子目录的文件代码WebMatrix入门教程asp.net判断文件或文件夹是否存在c#判断数据NULL值的方法vc++6.0怎么写Windows简单窗口代码.net解决数据导出excel时的格式问题