ASP.Net/Validation by Control/CompareValidator

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

asp:CompareValidator Demo (VB.net)

<%@ Page Language=VB Debug=true %>
<%@ Import Namespace="System.Data" %>
<script runat=server>
</SCRIPT>
<HTML>
<HEAD>
<TITLE>CompareValidator Control Sample Page</TITLE>
</HEAD>
<BODY >
<form runat="server">
<Font Face="Tahoma">
<BR><BR>
<asp:Label
    id="lblMessage"
    runat="server"
    Font-Bold="True"
    Text="Date"
/>
<asp:TextBox 
    id="txtDateField" 
    Columns="25"
    MaxLength="30"
    runat=server 
/>
<asp:CompareValidator 
    id="cvDateField" 
    ControlToValidate="txtDateField" 
    Operator="DataTypeCheck" 
    Type="Date" 
    Display="Dynamic"
    Font-Size="10pt"
    runat="server">
    You must enter a date!
</asp:CompareValidator>
<BR><BR>
<asp:Label
    id="lblMessage2"
    runat="server"
    Font-Bold="True"
    Text="Number"
/>
<asp:TextBox 
    id="txtNumber" 
    Columns="25"
    MaxLength="30"
    runat=server 
/>
<asp:CompareValidator 
    id="cvNumber" 
    ControlToValidate="txtNumber" 
    Operator="DataTypeCheck" 
    Type="Integer" 
    Display="Dynamic"
    runat="server">
    You must enter a whole number!
</asp:CompareValidator>
<BR><BR>
<asp:Label
    id="lblMessage3"
    runat="server"
    Font-Bold="True"
    Text="Make the same"
/>
<asp:TextBox 
    id="txtSame1" 
    Columns="25"
    MaxLength="30"
    runat=server 
/>
<asp:TextBox 
    id="txtSame2" 
    Columns="25"
    MaxLength="30"
    runat=server 
/>
<asp:CompareValidator id="cvSame"
    ControlToValidate="txtSame1" 
    ControlToCompare="txtSame2"
    Display="Dynamic"
    Font-Name="Tahoma"
    Font-Size="10pt"
    runat=server>
    Fields don"t match!
</asp:CompareValidator>
<BR><BR>
<asp:button 
    id="butOK"
    text="OK"
    Type="Submit"
    runat="server"
/>
</Font>
</Form>
</BODY>
</HTML>



Comparevalidator: equal (VB.net)

<%@ Page Language="vb" %>
<html>
<head>
   <title>Validation Control Example</title>
    <script language="javascript">
    <!--
      function ClientValidate(source, arguments)
      {
         //alert(arguments.Value);
         var r, re;      //Declare variables.
         re = new RegExp(/^[1-9][0-9][0-9][0-9]$/);  //Create regular expression object.
         r = re.test(arguments.Value);  //Test for match.
         arguments.IsValid = r;    //Return results.
      }
   -->
   </script>
   <script runat="server">
      Sub Page_Load()
         vsSummary.DisplayMode = ValidationSummaryDisplayMode.List
      End Sub
      Sub ServerValidation (source As object, args As ServerValidateEventArgs)
         Dim RegExVal As New System.Text.RegularExpressions.Regex("^\d{4}$")
         If RegExVal.IsMatch(args.Value) Then
            args.IsValid = True
         Else
            args.IsValid = False
         End If
      End Sub
   </script>
</head>
<body>
   <h1>Validation Control Example</h1>
   <form runat="server">
      <asp:table id="MyTable" border="1" cellpadding="5" cellspacing="0" runat="server">
         <asp:tablerow runat="server">
            <asp:tablecell runat="server">
               Compare Validator Control:
               <br><br>
               Enter two numbers to compare
            </asp:tablecell>
            <asp:tablecell runat="server">
               <asp:textbox id="value1" runat="server"/><br>
               <asp:textbox id="value2" runat="server"/><br>
               <asp:comparevalidator id="cvCompare" 
                  controltovalidate="value1" 
                  controltocompare="value2" 
                  operator="equal" 
                  type="integer" 
                  errormessage="Fields are not equal!" 
                  display="dynamic" 
                  runat="server"/>
            </asp:tablecell>
         </asp:tablerow>

         <asp:tablerow runat="server">
            <asp:tablecell runat="server">
               ValidationSummary Control:
            </asp:tablecell>
            <asp:tablecell runat="server">
               <asp:validationsummary id="vsSummary"
                  displaymode="bulletlist" 
                  headertext="Page has the following errors: "
                  showsummary="true" 
                  showmessagebox="false"
                  runat="server"/>
            </asp:tablecell>
         </asp:tablerow>
         <asp:tablerow runat="server">
            <asp:tablecell colspan="2" runat="server">
               <asp:button text="submit" runat="server"/>
            </asp:tablecell>
         </asp:tablerow>
      </asp:table>
      <asp:label id="MyLabel" runat="server"/>
   </form>
</body>
</html>



Set CompareValidator to Today

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Default</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label2" 
                   runat="server" 
                   Text="The Following Field Must Be a Date and Earlier than Today"></asp:Label><br />
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <asp:CompareValidator ID="CompareValidator1" 
                              runat="server" 
                              ControlToValidate="TextBox2"
                              ErrorMessage="TextBox2 Must Be a Date and Earlier than Today" 
                              Operator="LessThan"
                              SetFocusOnError="True" 
                              Type="Date">*</asp:CompareValidator><br />
        
        <br /><br /><br /><br /><br /> 
        The Following Fields Must Contain a Early Date and a Later Date<br />
        <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
        <asp:Label ID="Label5" runat="server" Text="through"></asp:Label>
        <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
        <asp:CompareValidator ID="CompareValidator2" 
                              runat="server" 
                              ControlToCompare="TextBox6"
                              ControlToValidate="TextBox5" 
                              ErrorMessage="TextBox5 Must be Earlier Than TextBox6"
                              Operator="GreaterThan" 
                              Type="Date">*</asp:CompareValidator><br />
        <asp:Button ID="Button1" 
                    runat="server" 
                    OnClick="Button1_Click" 
                    Text="Submit" />
        <asp:Button ID="Button2" 
                    runat="server" 
                    CausesValidation="False" 
                    Text="Cancel - Will Not Validate!" />
        <asp:Button ID="Button3" 
                    runat="server" 
                    Text="Validate DropDownList1 Only" 
                    ValidationGroup="DDL" /><br />
        <asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True" />
        <asp:ValidationSummary ID="ValidationSummary2" 
                               runat="server" 
                               ShowMessageBox="True"
                               ValidationGroup="DDL" />
    </div>
    </form>
</body>
</html>
File: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    this.rupareValidator1.ValueToCompare = DateTime.Today.ToShortDateString();
    }
  protected void Button1_Click(object sender, EventArgs e)
  {
    this.Validate(string.Empty);
    if (this.IsValid==false)
    {
      // Do something...
    }
  }
}



Validating User Input Against a Value Through the CompareValidator Control (VB.net)

<%@ Page Language=VB Debug=true %>
<HTML>
<HEAD>
<TITLE>Validating User Input Against a Value Through the CompareValidator Control</TITLE>
</HEAD>
<form runat="server">
<BR><BR>
What is the next generation of ASP called?<BR>
<asp:textbox 
    id="txtAnswer" 
    runat=server 
/>
<asp:CompareValidator id="cvCheckAnswer"
    ControlToValidate="txtAnswer" 
    ValueToCompare="ASP.NET"
    runat=server>
    Incorrect Answer!
</asp:CompareValidator>
<BR><BR>
<asp:button 
    id="butOK"
    text="OK"
    type="Submit"
    runat="server"
/>
</form>
</BODY>
</HTML>



Validating User Input against the Value in Another Control Using the CompareValidator Control (VB.net)

<%@ Page Language=VB Debug=true %>
<HTML>
<HEAD>
<TITLE>Validating User Input against the Value in Another Control Using the CompareValidator Control</TITLE>
</HEAD>
<form runat="server">
<BR><BR>
Enter the same value in both TextBox controls:
<BR>
<asp:textbox 
    id="txtSame1" 
    runat=server 
/>
<BR>
<asp:textbox 
    id="txtSame2" 
    runat=server 
/>
<asp:comparevalidator 
    id="cvCheckValues"
    controltovalidate="txtSame1" 
    controltocompare="txtSame2"
    runat=server
>
    <BR>Please enter the same value in both boxes.
</asp:comparevalidator>
<BR><BR>
<asp:button 
    id="butOK"
    text="OK"
    type="Submit"
    runat="server"
/>
</form>
</BODY>
</HTML>