ASP.NET验证控件验证用户输入数据,以确保不会存储无用,未经身份验证或矛盾的数据。 ASP.NET提供以下验证控件:
BaseValidator类别验证控件类是从BaseValidator类继承的,因此它们继承了其属性和方法。因此,有助于查看此基类的属性和方法,这对于所有验证控件都是通用的:
RequiredFieldValidator控件RequiredFieldValidator控件确保必填字段不为空。通常将其绑定到文本框以强制输入文本框。 该控件的语法如下: <asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"> </asp:RequiredFieldValidator> RangeValidator控制RangeValidator控件验证输入值是否落在预定范围内。 它具有三个特定的属性:
该控件的语法如下: <asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"> </asp:RangeValidator> CompareValidator控件CompareValidator控件将一个控件中的值与固定值或另一个控件中的值进行比较。 它具有以下特定属性:
控件的基本语法如下: <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"> </asp:CompareValidator> RegularExpressionValidatorRegularExpressionValidator允许通过与正则表达式的模式进行匹配来验证输入文本。正则表达式在ValidationExpression属性中设置。 下表总结了正则表达式的常用语法构造:
除了单个字符匹配之外,还可以指定可以匹配的一类字符,称为元字符。
可以添加量词以指定出现字符的次数。
该控件的语法如下: <asp:RegularExpressionValidator ID="string" runat="server" ErrorMessage="string" ValidationExpression="string" ValidationGroup="string"> </asp:RegularExpressionValidator> CustomValidatorCustomValidator控件允许为客户端和服务器端验证编写特定于应用程序的自定义验证例程。 客户端验证通过ClientValidationFunction属性完成。客户端验证例程应使用浏览器可以理解的脚本语言编写,例如JavaScript或VBScript。 必须从控件的ServerValidate事件处理程序中调用服务器端验证例程。服务器端验证例程应使用任何.Net语言编写,例如C#或VB.Net。 该控件的基本语法如下: <asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction=.cvf_func. ErrorMessage="CustomValidator"> </asp:CustomValidator> 验证摘要ValidationSummary控件不执行任何验证,但在页面中显示所有错误的摘要。摘要显示了所有验证失败的验证控件的ErrorMessage属性的值。 以下两个相互包含的属性列出了错误消息:
该控件的语法如下: <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode = "BulletList" ShowSummary = "true" HeaderText="Errors:" /> 验证组复杂的页面在不同的面板中提供了不同的信息组。在这种情况下,可能需要对单独的组分别执行验证。使用验证组可以处理这种情况。 要创建验证组,您应该通过设置输入控件和验证控件的ValidationGroup属性将它们置于相同的逻辑组中。 例以下示例描述了由学校的所有学生(分为四所房屋)填写的用于选举校长的表格。在这里,我们使用验证控件来验证用户输入。 这是设计视图中的表单: 内容文件代码如下: <form id="form1" runat="server"> <table style="width: 66%;"> <tr> <td class="style1" colspan="3" align="center"> <asp:Label ID="lblmsg" Text="President Election Form : Choose your president" runat="server" /> </td> </tr> <tr> <td class="style3"> Candidate: </td> <td class="style2"> <asp:DropDownList ID="ddlcandidate" runat="server" style="width:239px"> <asp:ListItem>Please Choose a Candidate</asp:ListItem> <asp:ListItem>M H Kabir</asp:ListItem> <asp:ListItem>Steve Taylor</asp:ListItem> <asp:ListItem>John Abraham</asp:ListItem> <asp:ListItem>Venus Williams</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"> </asp:RequiredFieldValidator> </td> </tr> <tr> <td class="style3"> House: </td> <td class="style2"> <asp:RadioButtonList ID="rblhouse" runat="server" RepeatLayout="Flow"> <asp:ListItem>Red</asp:ListItem> <asp:ListItem>Blue</asp:ListItem> <asp:ListItem>Yellow</asp:ListItem> <asp:ListItem>Green</asp:ListItem> </asp:RadioButtonList> </td> <td> <asp:RequiredFieldValidator ID="rfvhouse" runat="server" ControlToValidate="rblhouse" ErrorMessage="Enter your house name" > </asp:RequiredFieldValidator> <br /> </td> </tr> <tr> <td class="style3"> Class: </td> <td class="style2"> <asp:TextBox ID="txtclass" runat="server"></asp:TextBox> </td> <td> <asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"> </asp:RangeValidator> </td> </tr> <tr> <td class="style3"> Email: </td> <td class="style2"> <asp:TextBox ID="txtemail" runat="server" style="width:250px"> </asp:TextBox> </td> <td> <asp:RegularExpressionValidator ID="remail" runat="server" ControlToValidate="txtemail" ErrorMessage="Enter your email" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"> </asp:RegularExpressionValidator> </td> </tr> <tr> <td class="style3" align="center" colspan="3"> <asp:Button ID="btnsubmit" runat="server" onclick="btnsubmit_Click" style="text-align: center" Text="Submit" style="width:140px" /> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode ="BulletList" ShowSummary ="true" HeaderText="Errors:" /> </form> 提交按钮后面的代码: protected void btnsubmit_Click(object sender, EventArgs e) { if (Page.IsValid) { lblmsg.Text = "Thank You"; } else { lblmsg.Text = "Fill up all the fields"; } } |