تعمل عناصر التحكم في التحقق من صحة ASP.NET على التحقق من صحة البيانات التي أدخلها المستخدم لضمان عدم إمكانية تخزين البيانات غير المفيدة وغير المصرح بها والمتناقضة.
يوفر ASP.NET الجوانب التالية للتحكم في التحقق من الصحة:
مطلوبFieldValidator
RangeValidator
قارنValidator
مدقق التعبير العادي (RegularExpressionValidator)
أداة التحقق المخصصة (CustomValidator)
التحكم في ملخص التحقق من الصحة (ValidationSummary)
ترث فئات التحقق من الفئة BaseValidator، لذا فهي ترث خصائصها وأساليبها. ولذلك فإن تعلم خصائص وأساليب هذا الفصل الأساسي الذي هو أساس جميع ضوابط الفعالية سيكون عونا كبيرا للتعلم اللاحق:
عناصر | يصف |
---|---|
ControlToValidate | الحصول على أو تعيين عنصر التحكم في الإدخال ليتم التحقق من صحته. |
عرض | وصف كيفية عرض رسائل الخطأ. |
EnableClientScript | يشير إلى ما إذا كان العميل قد اعتمد التحقق. |
ممكّن | تمكين أو تعطيل أداة التحقق من الصحة. |
رسالة خطأ | سلسلة تصف الخطأ. |
نص | النص الذي سيتم عرضه في حالة فشل التحقق من الصحة. |
صالح | يشير إلى ما إذا كانت قيمة التحكم صالحة. |
SetFocusOnError | ما إذا كان سيتم تعيين التركيز على عنصر تحكم الإدخال ذي الصلة عند فشل التحقق من الصحة. |
ValidationGroup | الحصول على اسم مجموعة التحقق من الصحة التي ينتمي إليها عنصر تحكم التحقق هذا أو تعيينه. |
التحقق من صحة | إجراء التحقق من صحة عنصر تحكم الإدخال المرتبط وتحديث خاصية IsValid. |
يضمن عنصر التحكم RequiredFieldValidator أن الحقول المطلوبة ليست فارغة. يرتبط بشكل أساسي بمربع النص للسماح للمستخدم بالإدخال في مربع النص.
بناء جملة عنصر التحكم هذا كما يلي:
<asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"></asp:RequiredFieldValidator>
يعد عنصر التحكم RangeValidator مسؤولاً عن التحقق مما إذا كانت القيمة المدخلة ضمن النطاق المحدد مسبقًا.
لها ثلاث خصائص محددة:
ملكية | يصف |
---|---|
يكتب | فهو يحدد نوع البيانات. تتضمن أنواع البيانات المتوفرة: العملة والتاريخ والمزدوج والعدد الصحيح والسلسلة |
قيمة الحد الأدنى | يحدد الحد الأدنى للقيمة في النطاق |
القيمة القصوى | يحدد الحد الأقصى للقيمة في النطاق |
بناء جملة عنصر التحكم هذا كما يلي:
<asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"></asp:RangeValidator>
يقوم عنصر التحكم CompareValidator بالتحقق من صحة القيمة استنادًا إلى القيمة التي تم إدخالها في عنصر تحكم إدخال آخر أو قيمة رقمية ثابتة أو نوع البيانات الصحيح.
لديها الخصائص المحددة التالية:
ملكية | يصف |
---|---|
يكتب | فهو يحدد نوع البيانات. |
التحكم للمقارنة | فهو يحدد القيمة في عنصر تحكم الإدخال التي يجب مقارنتها. |
القيمة للمقارنة | يحدد قيمة لا تتغير في التحكم في الإدخال. |
المشغل | وهو يحدد عامل المقارنة، وتشمل القيم المتاحة: المساواة، وعدم المساواة، أكبر من أو يساوي، أقل من، أو يساوي، والتحقق من نوع البيانات. |
بناء الجملة الأساسي لعنصر التحكم هذا هو كما يلي:
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"></asp:CompareValidator>
يتيح لك عنصر التحكم RegularExpressionValidator تحديد صحة الإدخال عن طريق مطابقته مع التعبير العادي. يتم تعيين التعبير العادي في خاصية ValidationExpression.
يلخص الجدول التالي هياكل بناء الجملة المستخدمة عادة في التعبيرات العادية:
حرف الهروب | يصف |
---|---|
ب | يطابق مفتاح مسافة للخلف. |
ر | علامة تبويب التطابقات. |
ص | يطابق مفتاح الإدخال. |
v | يطابق أحرف علامة التبويب العمودية. |
و | يطابق حرف تغذية النموذج. |
n | تطابق الأسطر الجديدة. |
حرف الهروب . |
بالإضافة إلى مطابقة الأحرف البسيطة، يمكن تعيين نوع من الأحرف للمطابقة.
حرف البدل | يصف |
---|---|
. | يمكن أن يتطابق مع أي حرف باستثناء n. |
[اي بي سي دي] | يمكن أن تتطابق مع أي شخصية في المجموعة. |
[^ايه بي سي دي] | استبعاد أي شخصية من المجموعة. |
[2-7a-mA-M] | يطابق أي حرف ضمن نطاق معين. |
ث | يطابق أي مجموعة أحرف أبجدية رقمية والشرطة السفلية. |
W | يطابق أي حرف غير الكلمة. |
س | قم بمطابقة الأحرف مثل المسافات وعلامات الجدولة والأسطر الجديدة وما إلى ذلك. |
س | يطابق أي حرف غير مسافة. |
د | يطابق أي حرف عشري. |
د | يطابق أي حرف غير عشري. |
يمكن أن تشير محددات الكمية إلى عدد محدد من الكلمات التي يظهر فيها الحرف.
محدد الكمية | يصف |
---|---|
* | صفر أو أكثر من المباريات. |
+ | مباراة واحدة أو أكثر. |
؟ | صفر أو مباراة واحدة. |
{ن} | مباريات N. |
{ن،} | N أو أكثر من التطابقات. |
{ن، م} | التطابق بين N وM. |
بناء الجملة الأساسي لعنصر التحكم هذا هو كما يلي:
<asp:RegularExpressionValidator ID="string" runat="server" ErrorMessage="string" ValidationExpression="string" ValidationGroup="string"></asp:RegularExpressionValidator>
يسمح عنصر التحكم CustomValidator بكتابة إجراءات التحقق المحددة من جانب العميل والخادم للتحقق من صحة القيم.
يتم التحقق من صحة العميل بشكل مناسب عبر ClientValidationFunction. يجب كتابة إجراءات التحقق من جانب العميل بلغة برمجة نصية يفهمها المتصفح، مثل JavaScript أو VBScript.
يجب إنشاء إجراءات التحقق من جانب الخادم بواسطة معالج الأحداث ServerValidate لعنصر التحكم. يجب كتابة إجراءات التحقق من جانب الخادم بأي لغة .Net، مثل C# أو VB.Net.
بناء الجملة الأساسي لعنصر التحكم هذا هو كما يلي:
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction=.cvf_func. ErrorMessage="CustomValidator"></asp:CustomValidator>
لا يقوم عنصر التحكم ValidationSummary بإجراء أي عملية تحقق من الصحة ولكنه يعرض ملخصًا لكل الأخطاء الموجودة في الصفحة. يعرض هذا الملخص قيم خاصية ErrorMessage لجميع عناصر التحكم في التحقق من الصحة الفاشلة.
تسرد قائمتا السمات الشاملتان التاليتان رسائل الخطأ:
ShowSummary : عرض معلومات الخطأ بتنسيق خاص.
ShowMessageBox : عرض رسائل الخطأ في نافذة منفصلة.
بناء الجملة الأساسي لعنصر التحكم هذا هو كما يلي:
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode = "BulletList" ShowSummary = "true" HeaderText="Errors:" />
ستحتوي الصفحات المعقدة على مجموعات مختلفة من المعلومات على مستويات مختلفة. في هذه الحالة، سيكون لدى المجموعات المختلفة عمليات تحقق مختلفة، ويمكن حل هذا الموقف باستخدام مجموعات التحقق.
لإنشاء مجموعة تحقق من الصحة، يجب عليك وضع عنصر تحكم الإدخال وعنصر تحكم التحقق من الصحة في نفس المجموعة المنطقية عن طريق تعيين خصائص ValidationGroup الخاصة بهما.
يصف المثال التالي نموذجًا مكونًا من أربعة أجزاء سيتم ملؤه بواسطة المدرسة بأكملها للترشح لمنصب الرئيس. هنا، سوف نستخدم ضوابط التحقق من الصحة للتحقق من صحة ما يدخله المستخدم.
وهذا ما يبدو عليه في طريقة عرض التصميم:
الكود الخاص بهذا الجزء هو كما يلي:
<form id = "form1" runat = "server"> <table> <tr> <td colspan = "3" align = "center"> <asp:Label ID = "lblmsg" Text = "نموذج انتخاب الرئيس: اختر ما يناسبك President" runat="server" /> </td> </tr> <tr> <td> المرشح: </td> <td> <asp:DropDownList ID="ddlcandidate" runat="server" > <asp:ListItem>الرجاء اختيار المرشح</asp:ListItem> <asp:ListItem>م ح كبير</asp:ListItem> <asp:ListItem>ستيف تايلور</asp:ListItem> <asp:ListItem>جون أبراهام</ asp:ListItem> <asp:ListItem>فينوس ويليامز</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID = "rfvcandidate" runat = "server" ControlToValidate ="ddlcandidate" ErrorMessage = "يرجى اختيار مرشح" PrimaryValue = "يرجى اختيار مرشح"> </asp:RequiredFieldValidator> </td> </tr> <tr> < td> المنزل: </td> <td> <asp:RadioButtonList ID="rblhouse" runat="server" RepeatLayout="Flow"> <asp:ListItem>أحمر</asp:ListItem> <asp:ListItem>أزرق</asp:ListItem> <asp:ListItem>أصفر</asp:ListItem> <asp:ListItem>أخضر</asp:ListItem> </ asp:RadioButtonList> </td> <td> <asp:RequiredFieldValidator ID = "rfvhouse" runat = "server" ControlToValidate = "rblhouse" ErrorMessage="أدخل اسم منزلك" > </asp:RequiredFieldValidator> <br /> </td> </tr> <tr> <td> الفئة: </td> <td> <asp:TextBox ID="txtclass " runat = "server" ></asp:TextBox> </td> <td> <asp:RangeValidator ID = "rvclass" runat = "server" ControlToValidate = "txtclass" ErrorMessage = "أدخل صفك (6 - 12)" الحد الأقصى للقيمة = "12" الحد الأدنى Value = "6" النوع = "Integer"> </asp:RangeValidator> </td> </tr> <tr> <td> البريد الإلكتروني: </td> <td> <asp:TextBox ID="txtemail" runat="server"> </asp:TextBox> </td> <td> <asp:RegularExpressionValidator ID = "remail" runat = "server" ControlToValidate = "txtemail" ErrorMessage = "أدخل بريدك الإلكتروني" ValidationExpression = "w+([-+.']w+)*@w+([ -.]w+)*.w+([-.]w+)*"> </asp:RegularExpressionValidator> </td> </tr> <tr> <td align = "center" colspan = "3"> <asp:Button ID = "btnsubmit" runat = "server" onclick = "btnsubmit_Click" style = "text-align: center" Text= "إرسال" /> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode ="BulletList" ShowSummary ="true" HeaderText="الأخطاء:" /></form>
رمز زر الإرسال هو كما يلي:
protected void btnsubmit_Click(object sender, EventArgs e){ if (Page.IsValid) { lblmsg.Text = "شكرًا لك" } else { lblmsg.Text = "املأ جميع الحقول" }};