CompareValidator 控件用於將由用戶輸入到輸入控件的值與輸入到其他輸入控件的值或常數值進行比較。將輸入控件的值同常數值或其他輸入控件的值相比較,以確定這兩個值是否與由比較運算符(小於、等於、大於等等)指定的關系相匹配。
注釋:如果輸入控件為空,則不會調用任何驗證函數,並且驗證將成功。使用 RequiredFIEldValidator 控件使字段成為必選字段。
驗證控件中錯誤信息的顯示行為。
合法值是:
當驗證失敗時在 ValidationSummary 控件中顯示的文本。
注釋:如果未設置 Text 屬性,此文本將顯示在驗證控件中。
ForeColor 控件的前景顏色。 id 控件的唯一 ID。 IsValid 布爾值,指示由 ControlToValidate 指定的輸入控件是否通過驗證。 Operator要執行的比較操作的類型。
運算符是:
規定要對比的值的數據類型。
類型有:
<ASP:CompareValidator
AccessKey="string"
AssociatedControlID="string"
BackColor="color name|#dddddd"
BorderColor="color name|#dddddd"
BorderPADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"> Inset|Outset"
BorderWidth="size"
ControlToCompare="string"
ControlToValidate="string"
CSSClass="string"
CultureInvariantValues="True|False"
Display="None|Static|Dynamic"
EnableClIEntScript="True|False"
Enabled="True|False"
EnableTheming="True|False"
EnableVIEwState="True|False"
ErrorMessage="string"
Font-Bold="True|False"
Font-Italic="True|False"
Font-Names="string"
Font-Overline="True|False"
Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
Large|X-Large|XX-Large"
Font-Strikeout="True|False"
Font-Underline="True|False"
ForeColor="color name|#dddddd"
Height="size"
ID="string"
OnDataBinding="DataBinding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="Unload event handler"
Operator="Equal|NotEqual|GreaterThan|GreaterThanEqual|LessThan|
LessThanEqual|DataTypeCheck"
runat="server"
SetFocusOnError="True|False"
SkinID="string"
TabIndex="integer"
Text="string"
ToolTip="string"
Type="String|Integer|Double|Date|Currency"
ValidationGroup="string"
ValueToCompare="string"
Visible="True|False"
Width="size"
/>
備注:CompareValidator 控件使您能夠將用戶輸入到一個輸入控件(如 TextBox 控件)中的值與輸入到另一個輸入控件中的值或某個常數值進行比較。還可以使用 CompareValidator 控件確定輸入到輸入控件中的值是否可以轉換為 Type 屬性指定的數據類型。
通過設置 ControlToValidate 屬性來指定要驗證的輸入控件。如果要將特定的輸入控件與另一個輸入控件進行比較,請用要比較的控件的名稱設置 ControlToCompare 屬性。
可以將一個輸入控件的值同某個常數值相比較,而不是比較兩個輸入控件的值。通過設置 ValueToCompare 屬性來指定要比較的常數值。
Operator 屬性允許您指定要執行的比較類型,如大於、等於等。如果將 Operator 屬性設置為 ValidationCompareOperator.DataTypeCheck,則 CompareValidator 控件將忽略 ControlToCompare 和 ValueToCompare 屬性並且只表明輸入控件中輸入的值是否可以轉換為 Type 屬性指定的數據類型。
注意:如果輸入控件為空,則不調用任何驗證函數且驗證成功。使用 RequiredFIEldValidator 控件防止用戶跳過某個輸入控件。
下面的代碼示例演示如何使用 CompareValidator 控件來驗證一個文本框中輸入的值是否與另一個文本框中輸入的值匹配。驗證結果隨後顯示在頁上。
Visual Basic
<%@ 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 text box. 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 text box. 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>