验证控件的使用:一步一步学注册——CustomValidator 控件
? CustomValidator通过客户端或服务器端检查值
上一篇博客:
验证控件的使用:一步一步学注册——RegularExpressionValidator控件
上篇博客写到通过正则表达式来检查输入值,如果学好正则表达式,我相信,将来对系统的健壮性有很大的帮助。本篇博客通过客户端或者服务器端的函数来检查值,也是验证数据的一个重要控件之一。
首先举例来说在服务器端检查值,实现注册时判断该用户是否已经存在。
在举例之前,我们有必要结合MSDN了解一下该控件:
语法:<asp:CustomValidator />
方法:OnServerValidate 为
JavaScript代码
之前要引用空间
下面是客户端验证:
arguments 参数的 Value 属性来访问要验证的输入控件中的字符串。 arguments 参数的 IsValid 属性来返回验证结果。
重要的属性是:ClientValidationFunction 属性。警告
Validate 方法显式调用验证程序控件。)在您自己的代码中,应该先检查 Page.IsValid 属性是否返回了 true,然后再处理输入。 <html><head><title>Custom </title> <script runat="server"> void btnRegist_OnClick(object sender, EventArgs e) { } void ServerValidation(object source, ServerValidateEventArgs args) { try { string UserName = args.Value; SqlConnection con = new SqlConnection("server=.;database=login;uid=sa;pwd=123456;"); con.Open(); SqlCommand cmd = new SqlCommand("select Count(*) from login where userName='" + UserName + "'", con); int count = Convert.ToInt32(cmd.ExecuteScalar()); args.IsValid = (count == 0); } catch (Exception) { args.IsValid = false; } } </script> </head><body> <form id="Form1" runat="server"> <asp:TextBox id="Text1" runat="server" /> <asp:CustomValidator id="CustomValidator1" ControlToValidate="Text1" ClientValidationFunction="Judge" OnServerValidate="ServerValidation" Display="Static" ErrorMessage="该用户已存在!" ForeColor="red" runat="server"/> <br /> <asp:Button id="btnRegist" Text="注册" OnClick="btnRegist_OnClick" runat="server"/> </form></body></html><script language="javascript" type ="text/javascript"> function Judge(source, arguments) { if (arguments.Value == 0) { arguments.IsValid = false; } else { arguments.IsValid = true; } }</script>