Compare la valeur entrée par l'utilisateur dans un contrôle d'entrée avec la valeur entrée dans un autre contrôle d'entrée ou une constante.
Espace de noms : System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)
Visual Basic (Déclaration)
Public Class CompareValidator
Inherits BaseCompareValidator
Visual Basic (Utilisation)
Dim instance As CompareValidator
public class CompareValidator : BaseCompareValidator
public ref class CompareValidator : public BaseCompareValidator
public class CompareValidator extends BaseCompareValidator
public class CompareValidator extends BaseCompareValidator
Utilisez le contrôle CompareValidator pour comparer la valeur entrée dans un contrôle d'entrée, tel qu'un contrôle TextBox, avec la valeur entrée dans un autre contrôle d'entrée ou une constante. Vous pouvez également utiliser le contrôle CompareValidator pour indiquer si la valeur entrée dans un contrôle d'entrée peut être convertie dans le type de données spécifié par la propriété BaseCompareValidator.Type.
Spécifiez le contrôle d'entrée à valider en définissant la propriété ControlToValidate. Si vous souhaitez comparer un contrôle d'entrée spécifique avec un autre contrôle d'entrée, définissez la propriété ControlToCompare pour spécifier le contrôle avec lequel vous souhaitez effectuer la comparaison.
Remarque |
|---|
| Si la valeur entrée dans le contrôle d'entrée spécifié par la propriété ControlToCompare ne peut pas être convertie dans le type de données spécifié par la propriété BaseCompareValidator.Type, mais si la valeur entrée dans le contrôle d'entrée spécifié par la propriété ControlToValidate peut être convertie, le contrôle d'entrée en cours de validation est alors considéré comme valide. Vous devez par conséquent également placer un contrôle CompareValidator ou RangeValidator sur le contrôle d'entrée spécifié par la propriété ControlToCompare. |
Au lieu de comparer la valeur d'un contrôle d'entrée avec un autre contrôle d'entrée, vous pouvez comparer la valeur d'un contrôle d'entrée à une constante. Spécifiez la constante à comparer en définissant la propriété ValueToCompare.
Remarque |
|---|
| Si la valeur spécifiée par la propriété ValueToCompare ne peut pas être convertie dans le type de données spécifié par la propriété BaseCompareValidator.Type, une exception est alors levée. Veillez à vérifier le type de données d'une valeur avant de l'assigner, par programme, à la propriété ValueToCompare. |
Remarque |
|---|
| Ne définissez pas les propriétés ControlToCompare et ValueToCompare en même temps. Vous pouvez comparer la valeur d'un contrôle d'entrée avec un autre contrôle d'entrée ou une constante. Si les deux propriétés sont définies, la propriété ControlToCompare est prioritaire. |
Utilisez la propriété Operator pour spécifier le type de comparaison à effectuer, tel que supérieur à, égal à, etc. Si vous affectez ValidationCompareOperator.DataTypeCheck à la propriété Operator, le contrôle CompareValidator ignore alors les propriétés ControlToCompare et ValueToCompare et indique simplement si la valeur entrée dans le contrôle d'entrée peut être convertie dans le type de données spécifié par la propriété BaseCompareValidator.Type.
La propriété BaseCompareValidator.Type est utilisée pour spécifier le type de données des deux valeurs de comparaison. Les deux valeurs sont automatiquement converties dans ce type de données avant l'opération de comparaison. Le tableau suivant énumère les différents types de données pouvant être comparés.
| Type de données | Description |
| String | Type de données chaîne. |
| Integer | Type de données entier signé 32 bits. |
| Double | Type de données nombre à virgule flottante à double précision. |
| Date | Type de données date. |
| Currency | Type de données décimal pouvant contenir des symboles monétaires. |
Remarque |
|---|
| Si le contrôle d'entrée est vide, aucune fonction de validation n'est appelée et la validation réussit. Utilisez un contrôle RequiredFieldValidator pour obliger l'utilisateur à entrer des données dans le contrôle d'entrée. |
Pour plus d'informations sur les contrôles de validation, consultez BaseValidator.
Accessibilité
Le balisage rendu par défaut pour ce contrôle peut ne pas se conformer aux normes d'accessibilité telles que les instructions de priorité 1 d'accessibilité du contenu Web (WCAG, Web Content Accessibility Guidelines). Pour plus d'informations sur la prise en charge d'accessibilité pour ce contrôle, consultez Contrôles et accessibilité ASP.NET.
L'exemple de code suivant illustre l'utilisation d'un contrôle CompareValidator pour comparer les valeurs contenues dans deux contrôles TextBox.
<%@ 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>
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
Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
.NET Framework
Prise en charge dans : 2.0, 1.1, 1.0