TOC

This article is currently in the process of being translated into Vietnamese (~98% done).

Validation:

Validation - CompareValidator

CompareValidator có thể không phải là validator hay được dùng nhất, nhưng vẫn hữu ích trong một số trường hợp. Nó có thể so sánh hai giá trị, ví dụ giá trị của hai control. Trong ví dụ tiếp theo, tôi sẽ chỉ cho bạn cách dùng nó.

Small number:<br />
<asp:TextBox runat="server" id="txtSmallNumber" /><br /><br />
Big number:<br />
<asp:TextBox runat="server" id="txtBigNumber" /><br />
<asp:CompareValidator runat="server" id="cmpNumbers" controltovalidate="txtSmallNumber" controltocompare="txtBigNumber" operator="LessThan" type="Integer" errormessage="The first number should be smaller than the second number!" /><br />

Như bạn thấy, chúng ta chỉ dùng một validator để kiểm tra hai trường. Nó có thể hơi dài dòng nhưng khá đơn giản. Như với RequiredFieldValidator, chúng ta dùng thuộc tính controltovalidate để xác định control nào dùng để validate. Hơn nữa, chúng ta xác định control để so sánh. Thuộc tính operator xác định phương thức nào được dùng để so sánh. Trong trường hợp này, chúng ta dùng toán tử LessThan vì chúng ta muốn control đầu tiên có giá trị nhỏ nhất. Chúng ta thiết lập kiểu dữ liệu là integer vì chúng ta muốn so sánh các số nguyên. Date, string và các kiểu giá trị khác cũng có thể được so sánh.

Bây giờ, thử chạy trang web và kiểm tra hai trường dữ liệu mới. Đây là những gì sẽ xảy ra nếu bạn không điền đúng dữ liệu:

Nếu bạn thay đổi các con số thì bạn sẽ thấy một khía cạnh tuyệt vời khác của ASP.NET validator và scipt phía client: Validation được thực hiện dựa trên trường đã có. Nếu bạn không muốn thì bạn có thể tắt script phía client với thuộc tính enableclientscript. Bạn cũng có thể so sánh một trường với một giá trị tĩnh. Để làm vậy thì loại bỏ thuộc tính controltocompare và thêm vào thuộc tính valuetocompare.

Tuy nhiên, như bạn thấy, hai textbox không được chọn trước khi so sánh. Ví dụ, có thể không thêm gì hay chỉ là một đoạn text thay vì một con số. Bạn có thể luôn để ý khi dùng CompareValidator. Bạn có thể loại bỏ trường trống với RequiredFieldValidator và bạn có thể loại bỏ giá trị sai với RegularExpressionValidator mà chúng ta sẽ chỉ cho các bạn sau đó.

Nếu kiểm tra phía client không hoạt động thì form với các dữ liệu sai sẽ được kiểm tra bới đoạn code trong CodeBehind như đã chỉ ra với RequiredFieldValidator. Điều này là rất quan trọng.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!