按一下以給予評分及指教
全部折疊/全部展開 全部折疊
本頁僅適用於
Microsoft Visual Studio 2008/.NET Framework 3.5

其他版本也適用於下列軟體:
.NET Framework 類別庫
CompareValidator 類別

更新:2007 年 11 月

將使用者在輸入控制項中輸入的值與在其他輸入控制項中輸入的值 (或常數值) 相比較。

命名空間:  System.Web.UI.WebControls
組件:  System.Web (在 System.Web.dll 中)

Visual Basic (宣告)
<AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
Public Class CompareValidator _
    Inherits BaseCompareValidator
Visual Basic (使用方式)
Dim instance As CompareValidator
C#
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class CompareValidator : BaseCompareValidator
Visual C++
[AspNetHostingPermissionAttribute(SecurityAction::InheritanceDemand, Level = AspNetHostingPermissionLevel::Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction::LinkDemand, Level = AspNetHostingPermissionLevel::Minimal)]
public ref class CompareValidator : public BaseCompareValidator
J#
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public class CompareValidator extends BaseCompareValidator
JScript
public class CompareValidator extends BaseCompareValidator
ASP.NET
<asp:CompareValidator />

使用 CompareValidator 控制項,將使用者在輸入控制項 (例如 TextBox 控制項) 中輸入的值與在其他輸入控制項中輸入的值 (或常數值) 相比較。如果輸入控制項的值符合 OperatorValueToCompare 和/或 ControlToCompare 屬性指定的準則,CompareValidator 控制項就會通過驗證。

您也可以使用 CompareValidator 控制項,以表示在輸入控制項中輸入的值是否可以轉換成 BaseCompareValidator..::.Type 屬性所指定的資料型別。

指定輸入控制項,以藉由設定 ControlToValidate 屬性來驗證。如果您想要比較特定輸入控制項和另一個輸入控制項,設定 ControlToCompare 屬性以指定要與之比較的控制項。

注意事項:

如果在 ControlToCompare 屬性所指定之輸入控制項中輸入的值無法轉換成 BaseCompareValidator..::.Type 屬性所指定的資料型別,但在 ControlToValidate 屬性所指定之輸入控制項中輸入的值可以轉換,則正要驗證的輸入控制項會被視為是有效的。因此,您也應該將 CompareValidatorRangeValidator 控制項放置在 ControlToCompare 屬性所指定的輸入控制項。

若不將輸入控制項的值與另一個輸入控制項的值相比較,您可以將輸入控制項的值與常數值相比較來代替。設定 ValueToCompare 屬性,以指定要與之比較的常數值。

注意事項:

如果 ValueToCompare 屬性所指定的值無法轉換成 BaseCompareValidator..::.Type 屬性所指定的資料型別,則會擲回例外狀況。請確定要在以程式設計方式將值的資料型別指派至 ValueToCompare 屬性之前,先檢查值的資料型別。

注意事項:

不要同時設定 ControlToCompareValueToCompare 兩個屬性。您可以將輸入控制項的值與另一個輸入控制項的值相比較,或者與常數值相比較。如果兩個屬性都設定了,則以 ControlToCompare 屬性為優先。

使用 Operator 屬性來指定要執行的比對類型,例如大於、等於等。如果您將 Operator 屬性設定為 ValidationCompareOperator.DataTypeCheck,則 CompareValidator 控制項會忽略 ControlToCompareValueToCompare 屬性,並且只表示在輸入控制項中輸入的值是否可轉換成 BaseCompareValidator..::.Type 屬性所指定的資料型別。

BaseCompareValidator..::.Type 屬性用來指定比較值雙方的資料型別。兩個值在執行比較作業之前,會自動轉換至這個資料型別。

重要事項:

Type 屬性設定為 Date,且目前日曆類型不為西曆時,驗證器僅執行伺服器端的驗證。驗證器用戶端指令碼僅支援西曆日曆。

下列表格列出可以比較的各種資料型別。

資料型別

說明

String

字串資料型別。

Integer

32 位元帶正負號的整數資料型別。

Double

雙精度浮點數資料型別。

Date

日期資料型別。

Currency

可包含貨幣符號的十進位資料型別。

注意事項:

如果輸入控制項為空白,則沒有驗證函式會被呼叫,並且驗證成功。使用 RequiredFieldValidator 控制項,要求使用者輸入資料到輸入控制項。

注意事項:

當您在 UpdatePanel 控制項內使用 CompareValidator 控制項時,請確定驗證器控制項與相關聯的控制項位於相同的面板中。如需使用部分網頁更新之 UpdatePanel 控制項的詳細資訊,請參閱 網頁局部呈現概觀

如需驗證控制項的詳細資訊,請參閱 BaseValidator

可及性

根據預設為這個控制項呈現的標記,可能與可及性標準 (例如 Web 內容可及性方針 1.0 (WCAG) 優先權 1 方針) 不一致。如需這個控制項之可及性支援的詳細資料,請參閱 ASP.NET 控制項和網頁可及性

TopicLocation
HOW TO:以程式的方式測試 ASP.NET 伺服器控制項的有效性建置 ASP .NET Web 應用程式
HOW TO:以程式的方式測試 ASP.NET 伺服器控制項的有效性在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:以程式的方式驗證 ASP.NET 伺服器控制項建置 ASP .NET Web 應用程式
HOW TO:以程式的方式驗證 ASP.NET 伺服器控制項在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:使用 ASP.NET 伺服器控制項的自訂函式驗證建置 ASP .NET Web 應用程式
HOW TO:使用 ASP.NET 伺服器控制項的自訂函式驗證在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:停用 ASP.NET 伺服器控制項的驗證建置 ASP .NET Web 應用程式
HOW TO:停用 ASP.NET 伺服器控制項的驗證在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:在 ASP.NET 伺服器控制項中,指定就地訊息的配置建置 ASP .NET Web 應用程式
HOW TO:在 ASP.NET 伺服器控制項中,指定就地訊息的配置在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:格式化 ASP.NET 伺服器控制項的驗證錯誤訊息建置 ASP .NET Web 應用程式
HOW TO:格式化 ASP.NET 伺服器控制項的驗證錯誤訊息在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:比對模式驗證 ASP.NET 伺服器控制項建置 ASP .NET Web 應用程式
HOW TO:比對模式驗證 ASP.NET 伺服器控制項在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:比對特定值驗證 ASP.NET 伺服器控制項建置 ASP .NET Web 應用程式
HOW TO:比對特定值驗證 ASP.NET 伺服器控制項在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:比對範圍值驗證 ASP.NET 伺服器控制項建置 ASP .NET Web 應用程式
HOW TO:比對範圍值驗證 ASP.NET 伺服器控制項在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:比對資料型別驗證 ASP.NET 伺服器控制項建置 ASP .NET Web 應用程式
HOW TO:比對資料型別驗證 ASP.NET 伺服器控制項在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:比對資料庫值驗證 ASP.NET 伺服器控制項建置 ASP .NET Web 應用程式
HOW TO:比對資料庫值驗證 ASP.NET 伺服器控制項在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:顯示 ASP.NET 伺服器控制項的伺服器端自訂驗證訊息建置 ASP .NET Web 應用程式
HOW TO:顯示 ASP.NET 伺服器控制項的伺服器端自訂驗證訊息在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:驗證 ASP.NET 伺服器控制項的必要項目建置 ASP .NET Web 應用程式
HOW TO:驗證 ASP.NET 伺服器控制項的必要項目在 Visual Studio 中建立 ASP .NET Web 應用程式

在下列程式碼範例中,會示範如何使用 CompareValidator 控制項比較兩個 TextBox 控制項中的值。

安全性注意事項:

這個範例有一個可接受使用者輸入的文字方塊,這可能會造成安全性威脅。根據預設,ASP.NET Web 網頁會驗證使用者輸入未包含指令碼或 HTML 項目。如需詳細資訊,請參閱 指令碼攻擊概觀

Visual Basic
<%@ Page Language="VB" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  >
<head>
    <title>CompareValidator Example</title>
<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 id="form1" runat="server">

      <h3>CompareValidator Example</h3>
      <br />
      Enter a value in each textbox. Select a comparison operator<br />
      and data type. Click "Validate" to compare values.

      <table style="background-color:#eeeeee; padding: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="True" 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: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="true" 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-Names="verdana" 
           Font-Size="10pt" 
           runat="server"/>

   </form>

</body>
</html>

C#
<%@ Page Language="C#" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  >
<head>
    <title>CompareValidator Example</title>
<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 id="form1" runat="server">

      <h3>CompareValidator Example</h3>
      <br />
      Enter a value in each textbox. Select a comparison operator<br />
      and data type. Click "Validate" to compare values.

      <table style="background-color:#eeeeee; padding: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="True" 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: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="true" 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-Names="verdana" 
           Font-Size="10pt" 
           runat="server"/>

   </form>

</body>
</html>

JScript
<%@ Page Language="JScript" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  >
<head>
    <title>CompareValidator Example</title>
<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 id="form1" runat="server">

      <h3>CompareValidator Example</h3>
      <br />
      Enter a value in each textbox. Select a comparison operator<br />
      and data type. Click "Validate" to compare values.

      <table style="background-color:#eeeeee; padding: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="true" 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: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="true" 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>

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱 .NET Framework 系統需求

.NET Framework

支援版本:3.5、3.0、2.0、1.1、1.0
社群內容   什麼是社群內容?
新增內容 RSS  註解
Processing
© 2010 Microsoft Corporation. 著作權所有,並保留一切權利。 使用規定 | 商標 | 隱私權聲明
Page view tracker