HOW TO:比對特定值驗證 ASP.NET 伺服器控制項
更新:2007 年 11 月
如果您使用 ASP.NET 驗證控制項,就可以使用邏輯運算子 (Logical Operator) 以特定值驗證使用者的輸入。例如,您可指定使用者的輸入是 1950 年 1 月 1 日之後的日期,或是大於等於零的整數。另一種方式是,您可指定使用者的輸入要與其他控制項的內容值相比較。
![]() |
---|
使用者在 ASP.NET Web 網頁中輸入的內容可能會包含惡意的用戶端指令碼。如需詳細資訊,請參閱指令碼攻擊概觀。 |
若要以特定值驗證
將 CompareValidator 控制項加入至網頁,並設定下列屬性:
屬性
描述
控制項 ID,使用者必須為其提供內容值。
當使用者略過該控制項時,指定所顯示錯誤的文字及位置的屬性 (Property)。如需詳細資訊,請參閱 HOW TO:控制 ASP.NET 伺服器控制項的驗證錯誤訊息顯示。
設定下列屬性 (Property) 來設定要比較的值:
屬性
描述
- 或 -
輸入為字串的運算式。若要與常數值比較,請設定 ValueToCompare 屬性。若要與其他控制項的值比較,請將 ControlToCompare 屬性設為該控制項的 ID (CompareValidator 控制項會比較使用者的輸入和其他控制項之 ValidationPropertyAttribute 所指定的任何屬性)。如果您同時設定了 ValueToCompare 和 ControlToCompare,則 ControlToCompare 具有較高的順位。
將要進行比較的兩個值的資料型別。使用 ValidationDataType 列舉型別 (Enumeration) 指定型別,可讓您使用型別名稱 String、Integer、Double、Date 或 Currency。執行比較前,內容值將轉換為這個型別。如需詳細資訊,請參閱 HOW TO:比對資料型別驗證 ASP.NET 伺服器控制項。
要使用的比較。使用 ValidationCompareOperator 列舉型別中定義的下列其中一個值,指定運算子:
注意事項:
當比對其他控制項來完成驗證時,其他控制項的無效值將被忽略並且驗證會順利通過。如需詳細資訊,請參閱 ASP.NET 伺服器控制項的特殊狀況驗證結果。
在程式碼中加入測試以檢查有效性。如需詳細資訊,請參閱 HOW TO:以程式的方式測試 ASP.NET 伺服器控制項的有效性。
下列程式碼範例會顯示使用 CompareValidator 控制項驗證的 TextBox 控制項。
<table> <tr> <td> <asp:Textbox id="txtAge" ></asp:Textbox> </td> <td> <asp:CompareValidator id="CompareFieldValidator1" ForeColor="Red" ControlToValidate="txtAge" ValueToCompare="0" Type="Integer" Operator="GreaterThanEqual" ErrorMessage="Please enter a whole number zero or greater."> </asp:CompareValidator > </td> </tr> </table>
<table> <tr> <td> <asp:Textbox id="txtAge" ></asp:Textbox> </td> <td> <asp:CompareValidator id="CompareFieldValidator1" ForeColor="Red" ControlToValidate="txtAge" ValueToCompare="0" Type="Integer" Operator="GreaterThanEqual" ErrorMessage="Please enter a whole number zero or greater."> </asp:CompareValidator > </td> </tr> </table>
下列程式碼範例會顯示將使用者的輸入與其他控制項的值相比較的 CompareValidator。此頁面可讓使用者預訂旅館。驗證程式會檢查使用者輸入的退房日期不能早於入住日期 (在實際的應用程式中,退房日期是個必要項目,也會被視為日期進行驗證)。
<table> <tr> <td> Arrive<asp:Textbox id="txtArrivalDate" ></asp:Textbox> Depart<asp:Textbox id="txtDepartureDate" ></asp:Textbox> </td> <td> <asp:CompareValidator id="CompareValidator1" ForeColor="Red" ControlToValidate="txtDepartureDate" ControlToCompare="txtArrivalDate" Type="Date" Operator="GreaterThanEqual" ErrorMessage="Departure date cannot be earlier than arrival date."> </asp:CompareValidator > </td> </tr> </table>
<table> <tr> <td> Arrive<asp:Textbox id="txtArrivalDate" ></asp:Textbox> Depart<asp:Textbox id="txtDepartureDate" ></asp:Textbox> </td> <td> <asp:CompareValidator id="CompareValidator1" ForeColor="Red" ControlToValidate="txtDepartureDate" ControlToCompare="txtArrivalDate" Type="Date" Operator="GreaterThanEqual" ErrorMessage="Departure date cannot be earlier than arrival date."> </asp:CompareValidator > </td> </tr> </table>