الاثنين، 25 أكتوبر 2010

Required Field Validator



سنتحدث في هذه السلسلة الجديدة من الدروس عن الـ Validators و خصائصها و كثير من اسرارها التي قد لا يكتشفها من يستخدمها لاول مرة.

وأدعوكم لمشاركتي بمعلوماتكم فمن المأكد أني لم احصي كل استخداماتها . ولكن ساسرد ما اعرفه عنها و من كان له معلومة اضافية فليقم باضافتها ليصبح الموضوع كمرجع لكل من يريد ان يستخدم هذه الأدوات .


و سابدأ اليوم بأول نوع من الـ Validators و أشهرها وهو الـ Required Field Validator


كما ترى في الرسمة هو أول نوع موجود في ادوات الفحص أو الـ Validators

ما هي مهمة هذه الأداة ؟
المهمة الرئيسية لهذه الأداة هي التأكد من ملئ الحقول الإجبارية في الموقع .
مثال : عند التسجيل في المنتديات أو أي موقع , يقوم الموقع بطلب بعض البيانات الأساسية مثل اسم المستخدم و كلمة المرور
واذا لم تملأ هذه الحقول بالبيانات فستجده يخرج لك رسالة باللون الأحمر يخبرك فيها أن هذا الحقل إجباري.

هذه الرسالة هي نتيجة عمل الـ RequiredFieldValidator
حيث اننا نقوم بربط هذه الأدوات بالحقول التي نريدها اجبارية .

كيفية التنفيذ :
سنقوم بعمل مثال صغير لصفحة تسجيل بيانات عضو جديد في الموقع.
1- قم بانشاء صفحة كما هي موضحة في الصورة 
2- قم بسحب الـ ReqiredFieldValedator و ضعه على يسار حقل اسم المستحدم 
ثم اذهب إلى الخصائص

سنجد الآن أن هناك خاصيتين هامتين 

1- ErrorMessage  وهو نص الرسالة التي تريدها ان تظهر إذا نسي المستخدم ادخال بيانات في هذا الحقل
وسنضع الرسالة في مثالنا هذا " * ".
2- ControlToValidate وهو الحقل الذي تريد ان تتاكد من دخول البيانات فيه في مثالنا نحن نريد حقل اسم المستخدم الذي اسمه TextBox1 

وبذلك نكون قد ربطنا الحقل الخاص باسم المستخدم TextBox1 بالـ RequiredFieldValidator و اعطيناه الرسالة التي يجب ان تظهر إذا نسي ان يدخل بيانات في هذا الحقل.

نقوم بعمل هذه الخطوات مرة أخرى على حقل كلمة المرور.

وسنترك حقل العنوان حيث انه حقل اختياري وليس اجباري

من المفترض ان تجد شكل الفورمة بهذا الشكل قبل تشغيلها على المتصفح 
الآن سنقوم بكتابة أمر لطباعة محتويات الفورمة داخل زر "اطبع البيانات"
protected void Button1_Click(object sender, EventArgs e)
    {
        string username = TextBox1.Text;
        string password = TextBox2.Text;
        string address = TextBox3.Text;

        Response.Write("Username = "+username +"<br/>Password = "+password + "<br/>Address = "+address);
    }
 الآن قم بتجربة البرنامج 

اضغط على الزر قبل ان تدخل أي بيانات , ستجده لا ينفذ أمر الزر , بل يقوم باخراج رسالة الخطأ التي قمت بادخالها في الـ Validator 
على يسار كل حقل.

وبذلك فلن يسمح للفومة ان تقوم بتنفيذ أي أمر إلا بعد أن تقوم بادخال هذه القول الأساسية.

قم الآن بادخال اسم المستخدم و كلمة المرور ولا تقم بادخال العنوان .

ستجد ان البرنامج قد قام بطباعة النتيجة :)

هذا ابسط استخدام لهذه الأدوات 

استخدمات أخرى متقدمة :
الآن احببت ان اضع له قائمة اختيارات و اريده ان يقوم بختيار احد عناصرها إجباري
مثلا نوع العضوية
قم بانشاء DropDownList و ضع فيها البيانات كما هو موضح في الصورة

ساهتم جدا بالاختيار الأول "-- اختر عضوية -- " حيث اني ساضع له قيمته مثلا بـ "0"

و ساضع له اداة فحص أخرى  RequiredFieldValidator و ساربطه بنفس الطريقة السابقة

إلا اني ساضيف أمرا عليه

هناك خاصية اسمها InitialValue 
ساعطي هذه الخاصية القيمة التي قمت بوضعها في الحقل الذي سيظهر عند فتح الفورمة "0"
بحيث إذا لم يقم باختيار اي عنصر فانه كقيمة افتراضية سيختار -- اختر عضوية -- التي قيمتها صفر 

فإذا وجد ان القيمة المختارة = الـ InitialValue 

فهذا سيعني له انه لم يتم الاختيار وبالتالي اصبح اختيار العضوية أمرا إلزاميا أيضا

الآن , قم بتحديث الكود ليطبع قيمة نوع العضوية إلى الكود التالي

 protected void Button1_Click(object sender, EventArgs e)
    {
        string username = TextBox1.Text;
        string password = TextBox2.Text;
        string address = TextBox3.Text;

        Response.Write("Username = "+username +"<br/>Password = "+password + "<br/>Address = "+address +"<br/>User Category = "+DropDownList1.SelectedValue);
    }
وجرب الآن مرة اخرى , ستجد انه اصبح عندك ثلاث حقول إجبارية 

1- اسم المستخدم 
2- كلمة المرور 
3- العضوية

هذه بعض المزايا المتوفرة في الـ RequiredFieldValidator الخاصة بالـ ASP.NET

اتمنى ان اكون قد أفدتكم , وانتظر منكم الاضافات على هذه المقالة

ولمن اراد تحميل المثال فيمكنكم تحميله من الرابط التالي ....

 

هناك تعليق واحد:

  1. RequiredFieldValidator عندما استخدمها الموقع لا يفتح . انا انشات صفحة تقوم بحساب الارقام واريد ان ادخل رسالة عند عدم ادخال رقم ولاكن عندما استخدم RequiredFieldValidator واقوم بتعديل المسج ايرور الصفحه لا تشتغل نهائيا وعندما ازيلها اي ازيل تقنية RequiredFieldValidator الصفحه تعمل بشكل جيد .؟! لا ادري ما المشكلة

    ردحذف