02/10/2018, 20:45

Asp.net Validation - Sử dụng các điều khiển Validation

Khi bạn thiết kế Form nhập liệu, có những trường dữ liệu bắt buộc, hoặc phải nhập theo một chuẩn nào đó, nếu bạn không bắt lỗi nhập liệu khi đó sẽ xảy tra trường hợp lỗi dữ liệu. Trong VS từ VS2005 trở lên đã hỗ trợ các điều khiển Validation giúp chúng ta thực hiện việc bắt lỗi nhập liệu một ...

Khi bạn thiết kế Form nhập liệu, có những trường dữ liệu bắt buộc, hoặc phải nhập theo một chuẩn nào đó, nếu bạn không bắt lỗi nhập liệu khi đó sẽ xảy tra trường hợp lỗi dữ liệu. Trong VS từ VS2005 trở lên đã hỗ trợ các điều khiển Validation giúp chúng ta thực hiện việc bắt lỗi nhập liệu một cách dễ dàng

Trong bài viết này ta sẽ tìm hiểu về các điều khiển đó - cách dùng và công dụng và cách áp của các control này

(Ngoài các Control này bạn có thể tìm hiểu thêm các control của ajax control toolkit). Hiện tại có 6 điều khiển Validation trong netframework:

» RequiredFieldValidator: Yêu cầu phair nhập giá trị vào trường chỉ định trên Form 
» RangeValidator: Kiểm tra giá trị nhập vào có nằm trong một khoảng nhỏ nhất và lớn nhất định trước hay không.
» CompareValidator: So sánh giá trị nhập có bằng một giá trị của trường khác trên Form hay không.
» RegularExpressionValidator: So sánh giá trị nhập với 1 biểu thức quy tắc nào đấy có thể Email, ngày tháng…
» CustomValidator: Bạn có thể tuỳ chỉnh đối tượng Validator theo ý của mính
» ValidationSummary: Cho phép hiển thị tổng hợp tất cả các lỗi trên 1 trang.

Chúng ta sẽ tìm hiểu từng Control xem công dụng và cách áp của các control này nhé

1. RequiredFieldValidator:

Công dụng: Sử dụng điều khiển này khi bạn yêu cầu người dùng phải nhập thông tin vào một trường chỉ định trên Form của bạn
Cách dùng: Kéo thả điều khiển RequiredFieldValidator trong nhóm Validation trong Toolbox của VS vào Form của bạn.

Có 3 thuộc tính bạn cần chú ý:
- ControlToValidate: Trỏ đến điều khiển yêu cầu nhập
- Text (hoặc ErrorMessage): Chuỗi thông báo nếu người dùng không nhập 
- Display: Dynamic, Static, None. Ý nghĩa của thuộc tính này ta sẽ phân tích trong ví dụ.

Ví dụ:

Tên đăng nhập: <asp:TextBox ID="txtTenDangNhap" runat="server" /> <asp:RequiredFieldValidator ID="rfTenDangNhap" ControlToValidate="txtTenDangNhap" runat="server" Text="<br />Họ tên không được để trống" Display="Dynamic" /><br /> <asp:Button ID="btnDangNhap" runat="server" Text="Đăng nhập" />

Trong ví dụ trên ta yêu cầu người dùng phải nhập thông tin vào txtTenDangNhap ta dùng ControlToValidate="txtTenDangNhap" với   Text="<br />Họ tên không được để trống" và Display="Dynamic". Khi bạn sử dụng Dynamic trong thuộc tính Display thì khi hiển thị trên trình duyệt Button Đăng nhập sẽ không có khoảng cách dòng so với txtTenDangNhap chỉ khi người dùng không nhập giá trị mà nhấn Button thì mới đẩy Botton xuống 1 dòng và chèn vào thông báo lỗi "Họ tên không được để trống" ở dòng trống đó. Nhưng nếu bạn dùng Display="Static" thì khi người dùng chưa thao tác đã có sẵn một dòng trống tức là có khoảng cách 1 dòng so với txtTenDangNhap. Nếu Display="None" thì RequiredFieldValidator sẽ không hiện thông báo lỗi nếu người dùng không nhập.

Thuộc tính  Display với các Validator khác cũng tương tự do vậy các control còn lại tôi không diễn tả lại thuộc tính này nữa

2. Điều khiển RangeValidator

Công dụng: Sử dụng điều khiển RangeValidator khi bạn muốn người dùng nhập giá trị trong khoảng giới hạn định trước
Cách dùng: Kéo thả điều khiển RangeValidator trong nhóm Validation trong Toolbox của VS vào Form của bạn.

Và thiết lập các thuộc tính cơ bản sau (Mình nói thuộc tính cơ bản vì còn nhiều thuộc tính khác bạn tự tìm hiểu)

- ControlToValidate: Trỏ đến điều khiển cần kiểm tra
- Text(ErrorMessage): Câu thông báo lỗi nếu sai điều kiện
- MinimumValue: Giá trị nhỏ nhất thỏa mãn
- MaximumValue: Giá trị lớn nhất thỏa mãn
- Type (Kiểu so sánh): Interger,String, Double, Date và Currency.

Ví dụ:

Ngày: <asp:TextBox ID="txtNgay" runat="server" /> <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtNgay" MaximumValue="31" MinimumValue="1" Type="Integer" ErrorMessage= "Ngày sinh có giá trị từ 1-31" />


Trong ví dụ trên ta yêu cầu người dùng nhập giá trị ngày phải là số nguyên và có giá trị trong [1, 31].


Bình luận
0