CompareValidator-Klasse
Vergleicht den vom Benutzer in einem Eingabesteuerelement eingegebenen Wert mit dem Wert, der in einem anderen Eingabesteuerelement eingegeben wurde, oder mit einem konstanten Wert.
Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)
Syntax
'Declaration
Public Class CompareValidator
Inherits BaseCompareValidator
'Usage
Dim instance As CompareValidator
public class CompareValidator : BaseCompareValidator
public ref class CompareValidator : public BaseCompareValidator
public class CompareValidator extends BaseCompareValidator
public class CompareValidator extends BaseCompareValidator
Hinweise
Vergleichen Sie mit dem CompareValidator-Steuerelement den vom Benutzer in einem Eingabesteuerelement (z. B. ein TextBox-Steuerelement) eingegebenen Wert mit dem in einem anderen Benutzersteuerelement eingegebenen Wert oder mit einem konstanten Wert. Mit dem CompareValidator-Steuerelement können Sie außerdem angeben, ob der in ein Eingabesteuerelement eingegebene Wert in den Datentyp konvertiert werden kann, der durch die BaseCompareValidator.Type-Eigenschaft angegeben ist.
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 Steuerelement für den Vergleich fest.
Hinweis
Wenn der Wert, der in das durch die ControlToCompare-Eigenschaft angegebene Eingabesteuerelement eingegeben wurde, nicht in den Datentyp konvertiert werden kann, der durch die BaseCompareValidator.Type-Eigenschaft angegeben ist, aber die Konvertierung des Werts zulässig ist, der in das durch die ControlToValidate-Eigenschaft angegebene Eingabesteuerelement eingegeben ist, wird das geprüfte Eingabesteuerelement als gültig betrachtet. Aus diesem Grund müssen Sie immer ein CompareValidator-Steuerelement oder RangeValidator-Steuerelement auf dem Eingabesteuerelement anordnen, das durch die ControlToCompare-Eigenschaft angegeben ist.
Anstatt den Wert eines Eingabesteuerelements mit dem eines anderen Eingabesteuerelements zu vergleichen, können Sie den Wert eines Eingabesteuerelements auch mit einem konstanten Wert vergleichen. Geben Sie den zu vergleichenden konstanten Wert an, indem Sie die ValueToCompare-Eigenschaft festlegen.
Hinweis
Wenn der durch die ValueToCompare-Eigenschaft angegebene Wert nicht in den Datentyp konvertiert werden kann, der durch die BaseCompareValidator.Type-Eigenschaft angegeben ist, wird eine Ausnahme ausgelöst. Überprüfen Sie den Datentyp eines Werts, bevor Sie den Wert programmgesteuert der ValueToCompare-Eigenschaft zuweisen.
Hinweis
Legen Sie nicht gleichzeitig die ControlToCompare-Eigenschaft und die ValueToCompare-Eigenschaft fest. Sie können den Wert eines Eingabesteuerelements mit dem eines anderen Eingabesteuerelements oder mit einem konstanten Wert vergleichen. Wenn beide Eigenschaften festgelegt sind, hat die ControlToCompare-Eigenschaft Vorrang.
Mit der Operator-Eigenschaft können Sie den Typ des auszuführenden Vergleichs angeben, z. B. größer als, gleich usw. Wenn Sie die Operator-Eigenschaft auf ValidationCompareOperator.DataTypeCheck festlegen, ignoriert das CompareValidator-Steuerelement sowohl die ControlToCompare-Eigenschaft als auch die ValueToCompare-Eigenschaft und gibt nur an, ob der in das Eingabesteuerelement eingegebene Wert in den Datentyp konvertiert werden kann, der durch die BaseCompareValidator.Type-Eigenschaft angegeben ist.
Mit der BaseCompareValidator.Type-Eigenschaft wird der Datentyp der beiden Vergleichswerte angegeben. Beide Werte werden vor der Ausführung des Vergleichs automatisch in diesen Datentyp konvertiert. In der folgenden Tabelle werden die verschiedenen Datentypen aufgelistet, die verglichen werden können.
Datentyp |
Beschreibung |
---|---|
String |
Ein String-Datentyp. |
Integer |
Ein ganzzahliger 32-Bit-Datentyp mit Vorzeichen. |
Double |
Ein Gleitkommazahl-Datentyp mit doppelter Genauigkeit. |
Date |
Ein Date-Datentyp. |
Currency |
Ein Dezimaldatentyp, der Währungssymbole enthalten kann. |
Hinweis
Wenn das Eingabesteuerelement leer ist, werden keine Validierungsfunktionen aufgerufen, und die Validierung wird erfolgreich durchgeführt. Verwenden Sie ein RequiredFieldValidator-Steuerelement, um den Benutzer zum Eingeben von Daten in das Eingabesteuerelement aufzufordern.
Weitere Informationen zu Validierungssteuerelementen finden Sie unter BaseValidator.
Eingabehilfen
Das für dieses Steuerelement standardmäßig wiedergegebene Markup entspricht eventuell nicht den Standards für die Eingabehilfen wie beispielsweise den Richtlinien der Web Content Accessibility Guidelines 1.0 (WCAG) mit der Priorität 1. Details über die Unterstützung von Eingabehilfen für dieses Steuerelement finden Sie unter Steuerelemente und Eingabehilfen von ASP.NET.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie mit einem CompareValidator-Steuerelement die Werte in zwei TextBox-Steuerelementen verglichen werden.
<%@ 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)
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"/>
</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"/>
<p>
<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:ListItem Value="Currency" >Currency</asp:ListItem>
</asp:ListBox>
</td>
</tr>
</table>
<asp:CompareValidator id="Compare1"
ControlToValidate="TextBox1"
ControlToCompare="TextBox2"
EnableClientScript="False"
Type="String"
runat="server"/>
<br>
<asp:Label id="lblOutput"
Font-Name="verdana"
Font-Size="10pt"
runat="server"/>
</form>
</body>
</html>
<%@ 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;
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"/>
</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"/>
<p>
<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:ListItem Value="Currency" >Currency</asp:ListItem>
</asp:ListBox>
</td>
</tr>
</table>
<asp:CompareValidator id="Compare1"
ControlToValidate="TextBox1"
ControlToCompare="TextBox2"
EnableClientScript="False"
Type="String"
runat="server"/>
<br>
<asp:Label id="lblOutput"
Font-Name="verdana"
Font-Size="10pt"
runat="server"/>
</form>
</body>
</html>
<%@ Page Language="JScript" AutoEventWireup="True" %>
<html>
<head>
<script runat="server">
function Button_Click(sender, e : EventArgs)
{
if (Page.IsValid)
{
lblOutput.Text = "Result: Valid!";
}
else
{
lblOutput.Text = "Result: Not valid!";
}
}
function Operator_Index_Changed(sender, e : EventArgs)
{
Compare1.Operator = ValidationCompareOperator(ListOperator.SelectedIndex);
Compare1.Validate();
}
function Type_Index_Changed(sender, e : EventArgs)
{
Compare1.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"/>
</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"/>
<p>
<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:ListItem Value="Currency" >Currency</asp:ListItem>
</asp:ListBox>
</td>
</tr>
</table>
<asp:CompareValidator id="Compare1"
ControlToValidate="TextBox1"
ControlToCompare="TextBox2"
EnableClientScript="False"
Type="String"
runat="server"/>
<br>
<asp:Label id="lblOutput"
Font-Name="verdana"
Font-Size="10pt"
runat="server"/>
</form>
</body>
</html>
Vererbungshierarchie
System.Object
System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.Label
System.Web.UI.WebControls.BaseValidator
System.Web.UI.WebControls.BaseCompareValidator
System.Web.UI.WebControls.CompareValidator
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
CompareValidator-Member
System.Web.UI.WebControls-Namespace
BaseValidator-Klasse
BaseCompareValidator-Klasse
TextBox
BaseValidator.ControlToValidate-Eigenschaft
ControlToCompare
ValueToCompare
Operator
BaseCompareValidator.Type-Eigenschaft
RequiredFieldValidator