25
Nguyễn Huy Khánh [email protected] Khoa Công nghệ thông tin Bộ môn Công nghệ phần mềm

ASP.net Cac Control Kiem Tra Du Lieu

Embed Size (px)

DESCRIPTION

ASP.net Cac Control Kiem Tra Du Lieu

Citation preview

Page 1: ASP.net Cac Control Kiem Tra Du Lieu

Nguyễn Huy Khánh [email protected]

Khoa Công nghệ thông tin

Bộ môn Công nghệ phần mềm

Page 2: ASP.net Cac Control Kiem Tra Du Lieu

04/03/2011 Lập trình Web 2 2

Giới thiệu Validation control

Các Validatior đơn giản

Regular Expression Validator

Custom Validator

Page 3: ASP.net Cac Control Kiem Tra Du Lieu

04/03/2011 Lập trình Web 2 3

Giới thiệu Validation control

Các Validatior đơn giản

Regular Expression Validator

Custom Validator

Page 4: ASP.net Cac Control Kiem Tra Du Lieu

4

Validation control kiểm tra tính đúng đắn của dữ liệu do client nhập vào trước khi trang được gửi về cho server

Validation control Sử dụng khi

RequiredFieldValidator Kiểm tra nếu dữ liệu trong control khác giá trị

cho trước (mặc định là rỗng)

CompareValidator

Kiểm tra nếu mục dữ liệu nhập trong control

giống với control khác hoặc so sánh với một giá

trị cụ thể

RangeValidator Kiểm tra nếu mục dữ liệu nhập trong control nằm

giữa hai khoảng giá trị

RegularExpressionValidator Kiểm tra nếu mục dữ liệu nhập trong control thỏa

một công thức định dạng chỉ định

CustomValidator

Kiểm tra tính đúng đắn của dữ liệu nhập vào

control sử dụng client-side script hoặc server-

side code, hoặc cả hai

ValidationSummary Hiển thị tất cả các lỗi kiểm tra xảy ra trong trang

04/03/2011 Lập trình Web 2

Page 5: ASP.net Cac Control Kiem Tra Du Lieu

5

Các bước:

Kéo thả validate control vào Web form

Thiết lập các thuộc tính cho validate control: ControlToValidate là control bạn muốn kiểm tra

ErrorMessage: Thông báo lỗi

Text: Hiển thị của validate control

Sử dụng ValidationSummary control để hiển thị tất cả các lỗi xảy ra trong trang

Mặc dù việc kiểm tra xảy ra ở client, nhưng nó chỉ thực hiện khi có 1 sự

kiện post-back xảy ra!

04/03/2011 Lập trình Web 2

Page 6: ASP.net Cac Control Kiem Tra Du Lieu

6

Đặt thuộc tính ErrorMessage cho Validate control

04/03/2011 Lập trình Web 2

Page 7: ASP.net Cac Control Kiem Tra Du Lieu

7

Sử dụng ValidationSummary

04/03/2011 Lập trình Web 2

Page 8: ASP.net Cac Control Kiem Tra Du Lieu

8

Sử dụng ValidationSummary control với ShowMessage=True

04/03/2011 Lập trình Web 2

Page 9: ASP.net Cac Control Kiem Tra Du Lieu

04/03/2011 Lập trình Web 2 9

Giới thiệu Validation control

Các Validatior đơn giản

Regular Expression Validator

Custom Validator

Page 10: ASP.net Cac Control Kiem Tra Du Lieu

Lập trình Web 2 10

Thuộc tính Ý nghĩa

ControlToValidate Control dùng để thực hiện kiểm tra

InitialValue Giá trị dùng để so sánh. Mặc định là rỗng.

Mẫu số <asp:TextBox ID="txtMauSo"

runat="server“></asp:TextBox>

<asp:RequiredFieldValidator ID= "reqMauSo"

runat="server"

ControlToValidate="txtMauSo"

InitialValue="0"

Text="Mau so phai khac 0" />

04/03/2011

Page 11: ASP.net Cac Control Kiem Tra Du Lieu

Lập trình Web 2 11

Thuộc tính Ý nghĩa

ControlToValidate Control dùng để thực hiện kiểm tra

ControlToCompare Control dùng để so sánh

Operator

Toán tử so sánh: Equal, GreaterThan,

GreaterThanEqual, LessThan, LessThanEqual,

NotEqual, hoặc DataTypeCheck

ValueToCompare Giá trị hằng số để so sánh ControlToValidate với

Operator

Type Kiểm tra kiểu dữ liệu của ControlToValidate: String,

Integer, Double, Date, Currency

04/03/2011

Page 12: ASP.net Cac Control Kiem Tra Du Lieu

Lập trình Web 2 12

Enter Password: <asp:TextBox ID="txtPass1" runat="server"

TextMode="password"></asp:TextBox></br>

Reenter Password: <asp:TextBox ID="txtPass2"

runat="server"

TextMode="password"></asp:TextBox>

<asp:CompareValidator ID="compPass" runat="server"

ControlToValidate="txtPass2"

Operator="Equal"

ControlToCompare="txtPass1" Text="Passwords must match" />

04/03/2011

Page 13: ASP.net Cac Control Kiem Tra Du Lieu

Lập trình Web 2 13

Age: <asp:TextBox ID="TextBox1"

runat="server"></asp:TextBox>

<asp:CompareValidator ID="compAge"

runat="server"

ControlToValidate="txtAge"

ValueToCompare="18"

Operator="LessThanEqual“

Type="Integer" Text="You are too old to view this site" />

04/03/2011

Page 14: ASP.net Cac Control Kiem Tra Du Lieu

Lập trình Web 2 14

Sales Date: <asp:TextBox ID="txtDate"

runat="server"></asp:TextBox>

<asp:CompareValidator ID="compDate"

runat="server"

ControlToValidate="txtDate"

Operator="DataTypeCheck"

Type="Date" Text="Enter a valid date" />

04/03/2011

Page 15: ASP.net Cac Control Kiem Tra Du Lieu

Lập trình Web 2 15

<asp:TextBox ID="txtNumber" runat="server"></asp:TextBox>

<asp:RangeValidator ID="rangeNum" runat="server"

ControlToValidate="txtNumber"

MinimumValue="1"

MaximumValue="20"

Type="Integer" Text="Please enter number between 1 and 20" />

Thuộc tính Ý nghĩa

ControlToValidate Control dùng để thực hiện kiểm tra

MinimumValue Giá trị cận dưới

MaximumValue Giá trị cận trên

Type Kiểm tra kiểu dữ liệu của ControlToValidate: String,

Integer, Double, Date, Currency

04/03/2011

Page 16: ASP.net Cac Control Kiem Tra Du Lieu

04/03/2011 Lập trình Web 2 16

Giới thiệu Validation control

Các Validatior đơn giản

Regular Expression Validator

Custom Validator

Page 17: ASP.net Cac Control Kiem Tra Du Lieu

Lập trình Web 2 17

Email <asp:TextBox ID=“txtEmail» runat="server">

</asp:TextBox>

<asp:RegularExpressionValidator ID=“valEmail"

runat="server"

ControlToValidate="txtEmail"

ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-

.]\w+)*" ErrorMessage="Enter a valid Email"/>

04/03/2011

Page 18: ASP.net Cac Control Kiem Tra Du Lieu

Lập trình Web 2 18

Ký hiệu Ý nghĩa

^ … $ Dấu hiệu bắt đầu và kết thúc một Expression

\t Có chứa Ký tự Tab

\n Có chứa Ký tự xuống dòng

. Có chứa Ký tự bất kỳ khác \n

[qwerty] Có chứa Ký tự bất kỳ trong ngoặc vuông

[^qwerty] Không chứa ký tự nào trong ngoặc vuông

[a-z] Có chứa ký tự trong khoảng từ a đến z

\w Có chứa một từ bất kỳ (word). Tương tự [a-zA-Z0-0]

\W Có chứa một chuỗi bất kỳ không phải là một từ

(nonword)

| Hoặc

04/03/2011

Page 19: ASP.net Cac Control Kiem Tra Du Lieu

Lập trình Web 2 19

Ký hiệu Ý nghĩa

\s Có chứa ký tự khoảng trắng

\S Không chứa ký tự khoảng trắng

\d Có chứa ký tự số

\D Không phải ký tự số

* Chỉ định 0 hoặc nhiều

+ Chỉ định 1 hoặc nhiều

? Chỉ định 0 hoặc 1

{n} Chỉ định có đúng chính xác n lần

{n,} Chỉ định có nhiều hơn n lần

{n,m} Chỉ định có từ n đến m lần

04/03/2011

Page 20: ASP.net Cac Control Kiem Tra Du Lieu

04/03/2011 Lập trình Web 2 20

Giới thiệu Validation control

Các Validatior đơn giản

Regular Expression Validator

Custom Validator

Page 21: ASP.net Cac Control Kiem Tra Du Lieu

21

Tự viết mã lệnh kiểm tra chạy trên server hoặc client

Trên Server

Đặt mã lệnh kiểm tra trong hàm xử lý sự kiện ServerValidate

Hoặc Trên Client

Chỉ định đoạn script kiểm tra cho thuộc tính ClientValidationFunction của CustomValidator

04/03/2011 Lập trình Web 2

Page 22: ASP.net Cac Control Kiem Tra Du Lieu

22

protected void MyValidate(object source,

ServerValidateEventArgs args)

{

args.IsValid = false;

if (TextBox1.Text == "abc")

args.IsValid = true;

}

04/03/2011 Lập trình Web 2

Page 23: ASP.net Cac Control Kiem Tra Du Lieu

23

<script language="javascript">

function ClientValidate(e, args)

{

args.IsValid = false;

if (args.Value == "abc")

args.IsValid = true;

}

</script>

04/03/2011 Lập trình Web 2

Page 24: ASP.net Cac Control Kiem Tra Du Lieu

Lập trình Web 2 24

Tại sao cần kiểm tra dữ liệu?

Các Validator control của ASP.NET thực hiện kiểm tra dữ liệu ở client hay ở server?

Cách thức kiểm tra dữ liệu bằng Javascript?

04/03/2011

Page 25: ASP.net Cac Control Kiem Tra Du Lieu

04/03/2011 Lập trình Web 2 25

Sử dụng lại trang đăng kí ở bài trước

Sử dụng các validation controls để kiểm tra dữ liệu và thông báo lỗi, như sau:

Yêu cầu bắt buộc nhập tất cả thông tin

Mật khẩu phải có từ 6 đến 20 kí tự

Mật khẩu nhập lại phải khớp với mật khẩu

Kiểm tra email đúng định dạng

Kiểm tra ngày tháng năm sinh hợp lệ (kiểm tra năm nhuận, tháng có 28, 29, 30, 31 ngày)

Bắt buộc chọn nơi ở hiện tại (khác giá trị mặc định "Tỉnh/Thành")

Điện thoại liên lạc chỉ gồm số và có từ 6 đến 11 số

Khi người dùng bấm nút Đăng kí và dữ liệu đều hợp lệ sẽ chuyển trang web đến trang thông tin đăng kí thể hiện thông tin người dùng đã nhập ở trang trước