أدوات التحقق :
هي مجموعة من ادوات التحقق من المدخلات يعمل اغلبها جهة العميل Client Side ، وتحتوي على الأدوات التالية :
CompareValidator : مقارنة المدخلات في جهة بمدخلات أخرى ، تفيد مثلاً في حالة اعادة تأكيد كلمة المرور ، ربط هذه الأداة كافي لتطبيق هذا التحقق .
RangeValidator : للتأكد من ان المدخلات تقع ضمن نطاق معين يتم تحديده .
RequiredFieldValidator : للتأكد من أن المستخدم قام بادخال بيانات .
RegularExpressionValidator : يمكنك تحديد نوع من التحقق بناء على Reqular Expression ، تفيدك مثلاً في حالة التحقق من صحة موقع أو بريد الكتروني او رقم هاتف ، لمعرفة المزيد عن ال Reqular Expressions يمكنك مراجعة هذا الدرس :
http://www.arabteam2000-forum.com/index.php?showtopic=77787
ايضاً يمكنك الاستفادة من هذين الموقعين لاستخراج اي RegularExpression ترغب به :
http://regexlib.com/DisplayPatterns.aspx
http://www.regular-expressions.info/
CustomValidator : تتيح لك بناء اجراءات التحقق الخاصة بك .
ValidationSummary : تعرض موجز عمليات التحقق التي تمت في هذا الفورم .
تحتوي هذه المجموعة على الخصائص التالية :
ControlToValidate : أداة الادخال المطلوب التحقق منها .
Display : العرض في حالة حدوث الخطأ .
ErrorMessage : رسالة الخطأ .
ForeColor : لون رسالة الخطأ .
الآن لتجربة هذه المجموعة ، سنقوم بتصميم فورم تسجيل بيانات بسيطة ، تحتوي على الاسم ، ورقم المرور وتأكيد كلمة المرور ، والبريد الالكتروني والعمر .
- الاسم لا يمكن ان يكون خالياً : RequiredFieldValidator .
- كلمة المرور وتأكيدها لا بد ان يكونوا منطبقين: CompareValidator
- الايميل لا بد ان يكون صحيحاً : RegularExpressionValidator
- العمر لا بد أن يكون بين 10 و 50 : RangeValidator
- وفي النهاية سنعرض نتائج التحقق جميعها ...
قم بتصميم الفورم ، وضع كل اداة بجانب الحقل الخاص بها ليكون الشكل التالي :
والكود :
كود :
[color=#000080]<%@ Page Language=[COLOR=#0000ff]"C#"[/color] AutoEventWireup=[color=#0000ff]"true"[/color] CodeFile=[color=#0000ff]"Default4.aspx.cs"[/color] Inherits=[color=#0000ff]"Default4"[/color] %>[/COLOR]
[color=#000080]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">[/color]
[color=#000080]<html xmlns=[COLOR=#0000ff]"http://www.w3.org/1999/xhtml"[/color]>[/COLOR]
[color=#000080]<head runat=[COLOR=#0000ff]"server"[/color]>[/COLOR]
[color=#000080]<title>[/color]Untitled Page[color=#000080]</title>[/color]
[color=#000080]</head>[/color]
[color=#000080]<body>[/color]
[color=#ff8000]<form id=[COLOR=#0000ff]"form1"[/color] runat=[color=#0000ff]"server"[/color]>[/COLOR]
[color=#000080]<div>[/color]
Name:[color=#000080]<br />[/color]
[b][i] [/i][/b][color=#000080]<asp:TextBox ID=[COLOR=#0000ff]"TextBox1"[/color] runat=[color=#0000ff]"server"[/color]>[/COLOR][color=#000080]</asp:TextBox>[/color]
[color=#000080]<asp:RequiredFieldValidator ID=[COLOR=#0000ff]"RequiredFieldValidator1"[/color] runat=[color=#0000ff]"server"[/color]
ControlToValidate=[color=#0000ff]"TextBox1"[/color] ErrorMessage=[color=#0000ff]"you must eneter Name"[/color]>[/COLOR][color=#000080]</asp:RequiredFieldValidator>[/color]
[color=#000080]<br />[/color]
[color=#000080]<br />[/color]
Age:[color=#000080]<br />[/color]
[color=#000080]<asp:TextBox ID=[COLOR=#0000ff]"TextBox2"[/color] runat=[color=#0000ff]"server"[/color]>[/COLOR][color=#000080]</asp:TextBox>[/color]
[color=#000080]<asp:RangeValidator ID=[COLOR=#0000ff]"RangeValidator1"[/color] runat=[color=#0000ff]"server"[/color]
ControlToValidate=[color=#0000ff]"TextBox2"[/color] ErrorMessage=[color=#0000ff]"Age must be between 10 and 50"[/color]
MaximumValue=[color=#0000ff]"50"[/color] MinimumValue=[color=#0000ff]"10"[/color]>[/COLOR][color=#000080]</asp:RangeValidator>[/color]
[color=#000080]<br />[/color]
[color=#000080]<br />[/color]
Password:[color=#000080]<br />[/color]
[color=#000080]<asp:TextBox ID=[COLOR=#0000ff]"TextBox3"[/color] runat=[color=#0000ff]"server"[/color]>[/COLOR][color=#000080]</asp:TextBox>[/color]
[color=#000080]<br />[/color]
[color=#000080]<br />[/color]
Retype Password:[color=#000080]<br />[/color]
[color=#000080]<asp:TextBox ID=[COLOR=#0000ff]"TextBox4"[/color] runat=[color=#0000ff]"server"[/color]>[/COLOR][color=#000080]</asp:TextBox>[/color]
[color=#000080]<asp:CompareValidator ID=[COLOR=#0000ff]"CompareValidator1"[/color] runat=[color=#0000ff]"server"[/color]
ControlToCompare=[color=#0000ff]"TextBox3"[/color] ControlToValidate=[color=#0000ff]"TextBox4"[/color]
ErrorMessage=[color=#0000ff]"The passwords must be the same"[/color]>[/COLOR][color=#000080]</asp:CompareValidator>[/color]
[color=#000080]<br />[/color]
[color=#000080]<br />[/color]
E-mail:[color=#000080]<br />[/color]
[b][i] [/i][/b][color=#000080]<asp:TextBox ID=[COLOR=#0000ff]"TextBox5"[/color] runat=[color=#0000ff]"server"[/color]>[/COLOR][color=#000080]</asp:TextBox>[/color]
[color=#000080]<asp:RegularExpressionValidator ID=[COLOR=#0000ff]"RegularExpressionValidator1"[/color] runat=[color=#0000ff]"server"[/color]
ControlToValidate=[color=#0000ff]"TextBox5"[/color] ErrorMessage=[color=#0000ff]"invalid email address"[/color]
ValidationExpression=[color=#0000ff]"^((?[b][i]>[/i][/b][a-zA-Z\d!#$%[b][i]&[/i][/b]'*+\-/=?^_`{|}~]+\x20*|[b][i]"[/i][/b]((?=[\x01-\x7f])[^[b][i]"[/i][/b]\\]|\\[\x01-\x7f])*[b][i]"[/i][/b]\x20*)*(?[b][i]<[/i][/b]angle[b][i]>[/i][/b][b][i]<[/i][/b]))?((?!\.)(?[b][i]>[/i][/b]\.?[a-zA-Z\d!#$%[b][i]&[/i][/b]'*+\-/=?^_`{|}~]+)+|[b][i]"[/i][/b]((?=[\x01-\x7f])[^[b][i]"[/i][/b]\\]|\\[\x01-\x7f])*[b][i]"[/i][/b])@(((?!-)[a-zA-Z\d\-]+(?[b][i]<[/i][/b]!-)\.)+[a-zA-Z]{2,}|\[(((?(?[b][i]<[/i][/b]!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)[b][i]>[/i][/b])$"[/color]>[/COLOR][color=#000080]</asp:RegularExpressionValidator>[/color]
[color=#000080]<br />[/color]
[color=#000080]<br />[/color]
[color=#000080]<asp:Button ID=[COLOR=#0000ff]"Button1"[/color] runat=[color=#0000ff]"server"[/color] Text=[color=#0000ff]"Go On"[/color] />[/COLOR]
[color=#000080]<br />[/color]
[color=#000080]<br />[/color]
Summery:r />
[color=#000080]<asp:ValidationSummary ID=[COLOR=#0000ff]"ValidationSummary1"[/color] runat=[color=#0000ff]"server"[/color] />[/COLOR]
[color=#000080]</div>[/color]
[color=#ff8000]</form>[/color]
[color=#000080]</body>[/color]
[color=#000080]</html>[/color]
طبعاً قمت بتغيير Error Message لكل منهم ، وقمت بتحديد ال ControlToValidate لكل واحدة فيهم .
ال RegularExpression اللازم لعملية الايميل لو لم تكن قد راجعت بعض الدروس السابقة هو :
كود :
^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"[url=file://]://[/x01-/x7f])*%22/x20*)*(?%3Cangle%3E%3C))?((?!\.)(?%3E\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)]\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[/url][a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$
وبالنسبة للمقارنة ، فهناك خاصية ControlToCompare اضافة لخاصية ControlToValidate ، وفي ال Range خصائص Minimum Value و Maximum Value .
والآن جرب ارتكاب الاخطاء خطأ وراء الآخر ، وشاهد النتيجة :