Freigeben über


CompareValidator-Steuerelement

Vergleicht den Wert eines Eingabesteuerelements mit einer Konstanten oder dem Wert eines anderen Steuerelements, um festzustellen, ob die beiden Werte der Beziehung entsprechen, die durch einen Vergleichsoperator angegeben wird (kleiner als, ist gleich, größer als usw.).

<asp:CompareValidator
     id="ProgrammaticID"
     ControlToValidate="Programmatic ID of Server Control to Validate"
     ValueToCompare="value"     ControlToCompare="value"       Type="DataType"      Operator="Operator Value"      ErrorMessage="Message to display in ValidationSummary control"     Text="Message to display in control"       ForeColor="value"     BackColor="value" ...      runat="server" > </asp:CompareValidator>

Hinweise

Sie können mit dem CompareValidator-Steuerelement den vom Benutzer in einem Eingabesteuerelement (z. B. einem TextBox-Steuerelement) eingegebenen Wert mit dem Wert vergleichen, der in einem anderen Eingabesteuerelement eingegeben wurde, oder mit einer Konstanten. Sie können mit Hilfe des CompareValidator-Steuerelements auch feststellen, ob der in einem Eingabesteuerelement eingegebene Wert in den Datentyp konvertiert werden kann, der durch die Type-Eigenschaft angegeben wird.

Geben Sie das zu validierende Eingabesteuerelement an, indem Sie die ControlToValidate-Eigenschaft festlegen. Wenn Sie ein bestimmtes Eingabesteuerelement mit einem anderen Eingabesteuerelement vergleichen möchten, legen Sie die ControlToCompare-Eigenschaft auf das zu vergleichende Steuerelement fest.

Anstatt die Werte zweier Eingabesteuerelemente zu vergleichen, können Sie auch den Wert eines Eingabesteuerelements mit einer Konstanten vergleichen. Geben Sie die zu vergleichende Konstante an, indem Sie die ValueToCompare-Eigenschaft festlegen.

Mit der Operator-Eigenschaft können Sie die Art des auszuführenden Vergleichs angeben, z. B. größer als, ist gleich usw. Wenn Sie die Operator-Eigenschaft auf ValidationCompareOperator.DataTypeCheck setzen, ignoriert das CompareValidator-Steuerelement sowohl die ControlToCompare-Eigenschaft als auch die ValueToCompare-Eigenschaft und gibt einfach nur an, ob der in dem Eingabesteuerelement eingegebene Wert in den Datentyp konvertiert werden kann, der durch die Type-Eigenschaft festgelegt wird.

Hinweis   Wenn das Eingabesteuerelement leer ist, werden keine Validierungsfunktionen aufgerufen, und die Validierung wird erfolgreich durchgeführt. Verwenden Sie ein RequiredFieldValidator-Steuerelement, um zu verhindern, dass der Benutzer ein Eingabesteuerelement überspringt.

Weitere Informationen zum CompareValidator-Steuerelement finden Sie unter CompareValidator-Klasse.

Beispiel

Das folgende Beispiel veranschaulicht, wie Sie mit Hilfe des CompareValidator-Steuerelements ermitteln können, ob der in einem Textfeld eingegebene Wert mit dem Wert übereinstimmt, der in einem anderen Textfeld eingegeben wurde. Das Ergebnis der Validierung wird anschließend auf der Seite ausgegeben.

<%@ Page Language="VB" AutoEventWireup="True" %>
 
<html>
<head>
   <script runat="server">
 
      Sub Button_Click(sender As Object, e As EventArgs) 
 
         If Page.IsValid Then 
         
            lblOutput.Text = "Result: Valid!"
         
         Else 
         
            lblOutput.Text = "Result: Not valid!"
         
         End If

      End Sub
 
      Sub Operator_Index_Changed(sender As Object, e As EventArgs) 

         Compare1.Operator = CType(ListOperator.SelectedIndex, ValidationCompareOperator)
         Compare1.Validate()

      End Sub

      Sub Type_Index_Changed(sender As Object, e As EventArgs) 

         Compare1.Type = CType(ListType.SelectedIndex, ValidationDataType)
         Compare2.Type = CType(ListType.SelectedIndex, ValidationDataType)
         Compare1.Validate()

      End Sub
 
   </script>
 
</head>
<body>
 
   <form runat="server">

      <h3>CompareValidator Example</h3>
      <p>
      Enter a value in each textbox. Select a comparison operator<br>
      and data type. Click "Validate" to compare values.
 
      <table bgcolor="#eeeeee" cellpadding="10">

         <tr valign="top">

            <td>

               <h5>String 1:</h5>
               <asp:TextBox id="TextBox1" 
                    runat="server"/>

               <br>

               <asp:CompareValidator id="Compare1" 
                    ControlToValidate="TextBox1" 
                    ControlToCompare="TextBox2" 
                    Type="String"
                    EnableClientScript="false" 
                    Text="Failed Validation" 
                    runat="server"/>

            </td>

            <td>

               <h5>Comparison Operator:</h5>
 
               <asp:ListBox id="ListOperator" 
                    OnSelectedIndexChanged="Operator_Index_Changed" 
                    runat="server">

                  <asp:ListItem Selected Value="Equal" >Equal</asp:ListItem>
                  <asp:ListItem Value="NotEqual" >NotEqual</asp:ListItem>
                  <asp:ListItem Value="GreaterThan" >GreaterThan</asp:ListItem>
                  <asp:ListItem Value="GreaterThanEqual" >GreaterThanEqual</asp:ListItem>
                  <asp:ListItem Value="LessThan" >LessThan</asp:ListItem>
                  <asp:ListItem Value="LessThanEqual" >LessThanEqual</asp:ListItem>
                  <asp:ListItem Value="DataTypeCheck" >DataTypeCheck</asp:ListItem>

               </asp:ListBox>

            </td>

            <td>

               <h5>String 2:</h5>
               <asp:TextBox id="TextBox2" 
                    runat="server"/>
               <br>
               <asp:CompareValidator id="Compare2" 
                    ControlToValidate="TextBox2"  
                    Operator="DataTypeCheck"
                    EnableClientScript="false"
                    Text="Invalid Data Type" 
                    runat="server"/>
               <br>
               <asp:Button id="Button1"
                    Text="Validate"  
                    OnClick="Button_Click" 
                    runat="server"/>

            </td>
         </tr>

         <tr>
            <td colspan="3" align="center">

               <h5>Data Type:</h5>

               <asp:ListBox id="ListType" 
                    OnSelectedIndexChanged="Type_Index_Changed" 
                    runat="server">

                  <asp:ListItem Selected Value="String" >String</asp:ListItem>
                  <asp:ListItem Value="Integer" >Integer</asp:ListItem>
                  <asp:ListItem Value="Double" >Double</asp:ListItem>
                  <asp:ListItem Value="Date" >Date</asp:ListItem>

               </asp:ListBox>
            </td>
         </tr>
      </table>
 
      <br>
       
      <asp:Label id="lblOutput" 
           Font-Name="verdana" 
           Font-Size="10pt" 
           runat="server"/>
 
   </form>
 
</body>
</html>
[C#]
<%@ Page Language="C#" AutoEventWireup="True" %>
 
<html>
<head>
   <script runat="server">
 
      void Button_Click(Object sender, EventArgs e) 
      {
 
         if (Page.IsValid) 
         {
            lblOutput.Text = "Result: Valid!";
         }
         else 
         {
            lblOutput.Text = "Result: Not valid!";
         }

      }
 
      void Operator_Index_Changed(Object sender, EventArgs e) 
      {

         Compare1.Operator = (ValidationCompareOperator)ListOperator.SelectedIndex;
         Compare1.Validate();

      }

      void Type_Index_Changed(Object sender, EventArgs e) 
      {

         Compare1.Type = (ValidationDataType)ListType.SelectedIndex;
         Compare2.Type = (ValidationDataType)ListType.SelectedIndex;
         Compare1.Validate();

      }
 
   </script>
 
</head>
<body>
 
   <form runat="server">

      <h3>CompareValidator Example</h3>
      <p>
      Enter a value in each textbox. Select a comparison operator<br>
      and data type. Click "Validate" to compare values.
 
      <table bgcolor="#eeeeee" cellpadding="10">

         <tr valign="top">

            <td>

               <h5>String 1:</h5>
               <asp:TextBox id="TextBox1" 
                    runat="server"/>

               <br>

               <asp:CompareValidator id="Compare1" 
                    ControlToValidate="TextBox1" 
                    ControlToCompare="TextBox2" 
                    Type="String"
                    EnableClientScript="false" 
                    Text="Failed Validation" 
                    runat="server"/>

            </td>

            <td>

               <h5>Comparison Operator:</h5>
 
               <asp:ListBox id="ListOperator" 
                    OnSelectedIndexChanged="Operator_Index_Changed" 
                    runat="server">

                  <asp:ListItem Selected Value="Equal" >Equal</asp:ListItem>
                  <asp:ListItem Value="NotEqual" >NotEqual</asp:ListItem>
                  <asp:ListItem Value="GreaterThan" >GreaterThan</asp:ListItem>
                  <asp:ListItem Value="GreaterThanEqual" >GreaterThanEqual</asp:ListItem>
                  <asp:ListItem Value="LessThan" >LessThan</asp:ListItem>
                  <asp:ListItem Value="LessThanEqual" >LessThanEqual</asp:ListItem>
                  <asp:ListItem Value="DataTypeCheck" >DataTypeCheck</asp:ListItem>

               </asp:ListBox>

            </td>

            <td>

               <h5>String 2:</h5>
               <asp:TextBox id="TextBox2" 
                    runat="server"/>
               <br>
               <asp:CompareValidator id="Compare2" 
                    ControlToValidate="TextBox2"  
                    Operator="DataTypeCheck"
                    EnableClientScript="false"
                    Text="Invalid Data Type" 
                    runat="server"/>
               <br>
               <asp:Button id="Button1"
                    Text="Validate"  
                    OnClick="Button_Click" 
                    runat="server"/>

            </td>
         </tr>

         <tr>
            <td colspan="3" align="center">

               <h5>Data Type:</h5>

               <asp:ListBox id="ListType" 
                    OnSelectedIndexChanged="Type_Index_Changed" 
                    runat="server">

                  <asp:ListItem Selected Value="String" >String</asp:ListItem>
                  <asp:ListItem Value="Integer" >Integer</asp:ListItem>
                  <asp:ListItem Value="Double" >Double</asp:ListItem>
                  <asp:ListItem Value="Date" >Date</asp:ListItem>

               </asp:ListBox>
            </td>
         </tr>
      </table>
 
      <br>
       
      <asp:Label id="lblOutput" 
           Font-Name="verdana" 
           Font-Size="10pt" 
           runat="server"/>
 
   </form>
 
</body>
</html>

Siehe auch

CompareValidator-Klasse | Validierungsserversteuerelemente